0

我一直在尝试使用and制作一个简单的记事本应用程序(我的第一个应用程序)。我已经理解了大部分内容,但是如果我有多种行为,我会有点迷茫。我会解释的。 我的项目层次结构是这样的: 点击这里MVPdagger

  • MainActivity - 活动类,包含一个列表视图。
  • MainPresenter - 接口,包含一个设置容器方法和一个刷新方法
  • MainPresenterImpl - 演示者的实现
  • MainView - MainActivity 的接口(用于 mvp)
  • Note_Container - 包含 NoteHandler 以加载保存笔记,创建/存储适配器并可以进行更改
  • 忽略noteactivity它是空的
  • di 文件夹用于依赖注入
  • 模型只有一个包含两个字符串的音符类
  • NoteHandler - 包含 NoteRepository 并在抛出异常时处理它们。
  • NoteRepository - 使用 gson 库保存和加载文件中的笔记。

在解释了所有这些之后,您应该(可能)已经了解了项目的工作原理(随意批评层次结构)。
现在我想添加一个创建笔记的按钮。我将只添加侦听mainactivity器并将其重定向到演示者......
但是演示者会处理代码以添加新注释(启动新意图等)还是应该创建一个新类来独立处理这玩意儿?
如果我想在将来添加更多按钮,例如删除所有注释或启动帮助对话框,我应该为每个按钮创建一个处理代码的类吗?
我怎样才能组织这样的事情?

4

1 回答 1

0

导航没有在 MVP 模式中正式解决。好吧,我认为有两个好方法:

1 - 您可以创建一个导航器/路由器来为您处理导航。所以演示者将所有这些逻辑都提交给导航器或......

2 - 您可以处理活动中的屏幕变化。我真的相信屏幕变化是 View 的责任,所以你只需将导航命令传递给 View。喜欢:

interface MainView{
    void navigateToAddCardScreen()
    void navigateToLoginScreen()
    void navigateSomeScreen()
}

我更喜欢第二种选择。导航器使代码对我来说太细了......

我希望我能帮上忙

于 2017-09-26T15:19:21.037 回答