first create the whole fragment in the onCreatemethod Activityand add it tomMyFrag
ArrayList<MyFragment> mMyFrag = new ArrayList<MyFragment>();
@Override
protected void onCreate(Bundle savedInstanceState) {
for(int i=0; i<4; i++) {
MyFragment fragment = MyFragment.newInstance(arg);
mMyFrag.add(fragment);
}
}
and change the adapter to:
private class MyPagerAdapter extends FragmentPagerAdapter {
private ArrayList<MyFragment> mMyFragList;
public MyPagerAdapter(FragmentManager fm, ArrayList<MyFragment> list) {
super(fm);
mMyFragList = list;
}
@Override
public int getCount() {
return mMyFragList.size();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public MyFragment getItem(int position) {
return mMyFragList.get(position);
}
}
therefore, when you want to call a method from activity to fragment, say 1, do the following:
mMyFrag.get(1).yourMethod();
source
share