在MVP android应用程序

时间:2016-05-14 20:19:31

标签: android android-fragments mvp

我正在使用MVP模式构建一个小型测试Android应用程序。我有两个片段片段B(我用于滑动抽屉)和片段A(主片段)。这两个片段都有自己的演示者。当我点击滑动绘制时,它应该发送消息或调用片段A中的方法来更新视图。我想问一下,两位片段主持人如何在MVP下进行交谈。我知道其他解决方案,但我想通过MVP模式来实现。

请建议MVP模式遵循的一些选项来处理此类情况。

2 个答案:

答案 0 :(得分:0)

首先,在MVP方法中,演示者和视图彼此之间具有1对1的关系。如果您想使用EventBus / RxBus等总线系统在演示者之间进行通信。

我建议关注教程。这是一个由5部分组成的系列教程。在本教程中,有两个片段(搜索和缓存片段)彼此之间进行通信。

https://hackernoon.com/yet-another-mvp-article-part-1-lets-get-to-know-the-project-d3fd553b3e21

答案 1 :(得分:0)

在MVP中,查看Context启动另一个查看,这是另一个FragmentActivity,所以您Fragments之间的任何转换都必须通过查看。在您的情况下,您有:

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

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

您单击View1上的小部件,并希望使用MVP导航到View2上的某个屏幕。你可以这样做:

----------------------查看1 ---------------------

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

---------------------- Presenter 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库here