是否可以在使用 Mosby 的 Activity 中使用 Fragment 作为 MvpView?
例如,这是Google 的 todo-mvp-dagger 项目中TaskDetailActivity的精简版:
public class TaskDetailActivity extends AppCompatActivity {
public static final String EXTRA_TASK_ID = "TASK_ID";
@Inject TaskDetailPresenter mTaskDetailPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.taskdetail_act);
// Get the requested task id
String taskId = getIntent().getStringExtra(EXTRA_TASK_ID);
TaskDetailFragment taskDetailFragment = (TaskDetailFragment) getSupportFragmentManager()
.findFragmentById(R.id.contentFrame);
if (taskDetailFragment == null) {
taskDetailFragment = TaskDetailFragment.newInstance(taskId);
ActivityUtils.addFragmentToActivity(getSupportFragmentManager(),
taskDetailFragment, R.id.contentFrame);
}
// Create the presenter
DaggerTaskDetailComponent.builder()
.taskDetailPresenterModule(new TaskDetailPresenterModule(taskDetailFragment, taskId))
.tasksRepositoryComponent(((ToDoApplication) getApplication())
.getTasksRepositoryComponent()).build()
.inject(this);
}
...
}
在示例代码中,Fragment 作为视图实例传递给 TaskDetailPresenterModule。使用 Mosby 是否可行,如果可以,这是一种好的做法吗?我们可以把我们的presenter放在Activity里面,用Fragment代替Activity作为MvpView吗?
我问这个是因为我也想知道 Mosby 如何处理内部有多个 Fragment 的 Activity。
谢谢你的帮助。