In MVP, the View has the Context
to start another View which is either another Fragment
or Activity
, so any transition between your Fragments
has to be through the View. In your case, you have:
View1 (Sliding Drawer Fragment) <-----> Presenter1
View2 (Main Fragment) <-----> Presenter2
You click on a widget on View1 and want to navigate to some screen on View2 using MVP. You can do it like this:
---------------------- View 1 ---------------------
view1Item.setOnClickListener(new OnClickListener({
presenter1.doWhenItem1IsClicked();
}))
---------------------- Presenter 1 ----------------
public void doWhenItem1IsClicked(){
mView.showRelevantPageOnMainScreen()
}
---------------------- View 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();
}
---------------------- View 2 ---------------------
public void onCreate(){
super.onCreate();
presenter2=new Presenter2(this);
}
.
.
.
I have written an MVP library here you might find helpful.