我一直在看谷歌Android架构的MVP与匕首2的例子:
https://github.com/googlesamples/android-architecture/blob/todo-mvp-dagger/todoapp/app/src/main/java/com/example/android/architecture/blueprents/todoapp/tasksactivity.java
但是,这个示例相当琐碎--每个活动只有一个片段,Dagger组件构建在活动中,用于将活动与片段的演示者一起注入。
该活动做的很少,它只是加载第一个片段并实现FragmentCallback,视图可以使用它切换到另一个片段。
第一个片段有一个按钮,该按钮使用FragmentCallback加载第二个片段-片段通过以下方法强制转换活动获得
public void onAttach(Context context) {
super.onAttach(context);
callback = (FragmentCallback) context;
}
通过为活动创建一个组件和模块,我稍微改善了我的情况。每个片段仍然构建Dagger上下文,但我不再在presenter构造函数中注入视图(片段)--当片段构建上下文时,它将自己注入(因此它拥有了presenter),然后调用presenter.init(this)
,以便presenter现在拥有了视图。
这很好地减少了类的数量,下一步将是尝试只在活动中构建组件,并让片段使用它来注入自己(而不必构建新的组件)。
你肯定是在正确的轨道上。
我建议不要在活动
中使用单个组件,而是在每个片段
中实例化一个单独的组件(即使组件是相同的)。这种方法有两个好处:
活动
和其他片段
我看了几篇不同的文章,这些文章似乎建议在Dagger 2中使用两种不同的方法进行自定义范围界定: > 在配置更改第2部分(Github repo)中幸存的MVP演示者: 为每个片段使用唯一的自定义作用域,例如分别为和的
我已经和匕首2一起工作了一段时间,我还在试图弄清楚一些事情。我仍然不能很好地管理的一件事是为不同的情况设置模块和组件,比如一个有几个片段的活动。我看过很多实现,大多数时候都有点不同。 所以,让我公开我目前的应用程序结构使用MVP,我想要一些意见,如果我的实现是好的或不是。 现在,MainActivity有3个片段,我将为片段创建3个模块和1个组件 然后我必须实例化Dagger,首先在我的应用程序类
我可以使用一个片段作为一个活动吗?我已经创建了一个片段,但我希望它有像活动一样的功能,所以我使用片段扩展碎片活动。然而,我有一个带有碎片的导航抽屉。当我更改为“扩展碎片活动”时,我的代码有问题?请给我指路。
我读过很多关于这方面的文章,但也有2012年或更早的文章。 (我只是打算从数据库中读取和插入一些数据。)
我是Android新手。我想建立一个标签格式的应用程序。我找到了许多使用了活动的文档。在许多情况下,还使用了碎片活动。我不确定从哪一个开始更好。请建议我是否应该使用或以选项卡格式开始开发?
我不知道如何使用以下内容显示自定义片段: 类型不匹配:推断的类型是LoginFrament,但预期是片段