在MVP Android应用中,演示者之间的通信

10
我正在使用MVP模式构建一个小型测试Android应用程序。我有两个片段,片段B(我正在用于滑动抽屉)和片段A(主要片段)。这两个片段都有自己的Presenter。当我点击滑动抽屉时,它应该发送消息或调用Fragment A中的方法来更新视图。我想问,如何在MVP模式下使两个片段的Presenter交互。我知道其他解决方案,但我想通过MVP模式来完成它。
请建议MVP模式遵循哪些选项来处理这种情况。

嗨,我也遇到了类似的情况...你是怎么解决的? - eRaisedToX
2个回答

0

0
在 MVP 中,View 具有 Context 来启动另一个 View,这是另一个 FragmentActivity,因此任何 Fragments 之间的过渡都必须通过 View。 在您的情况下,您有:

View1(滑动抽屉片段) <-----> Presenter1

View2(主要片段)               <-----> Presenter2

您单击 View1 上的小部件,并希望使用 MVP 导航到 View2 上的某个屏幕。您可以按如下方式执行:

---------------------- 视图 1 ---------------------

view1Item.setOnClickListener(new OnClickListener({
    presenter1.doWhenItem1IsClicked();
}))

---------------------- 主持人 1 ----------------

public void doWhenItem1IsClicked(){
    mView.showRelevantPageOnMainScreen()
}

---------------------- 视图 1 ---------------------

public void showRelevantPageOnMainScreen(){
    View2 view2=new View2(); //This is better to be done using DI
 getFragmentManager().beginTransaction().replace(R.id.your_main_page_layout,view2).commit();
}

---------------------- 视图 2 ---------------------

public void onCreate(){
super.onCreate();
presenter2=new Presenter2(this);
}
.
.
.

我写了一个MVP库这里,你可能会觉得有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接