ややこしいからメモ
Activity→Fragment→ChildFragmentのViewPagerである特定のViewPagerのpositionを呼び出したいとき
try {
FragmentManager fm = ((MainActivity) context).getSupportFragmentManager();
Fragment prev = fm.findFragmentByTag("たぐ");
if (prev != null) {
FragmentManager fmF =prev.getChildFragmentManager();
ChildClass fragInFrag = (ChildClass)fmF.findFragmentByTag(
"android:switcher:" + R.id.pager + ":1(ここはPositionを指定)");
if (fragInFrag!= null){
fragInFrag.なんかの動作();
}
}
} catch (ClassCastException e) {
Log.e("TAG", "Can't get fragment manager");
}
ActivityからFragmentのフラグメントの動作を呼び出したいとき
//親fragmentの呼び出し Fragment prev = getParentFragment().getFragmentManager().findFragmentByTag("たぐ"); if (prev != null) { Class df = (Class) prev; df.なんかの動作(); }
FragmentまたはChildFragmentからActivityを呼び出したいとき
MainActivity activity = (MainActivity) getActivity(); if(activity!=null)activity.なんか();
FragmentまたはChildFragmentからFragmentを呼び出したいとき
try{ FragmentManager fm = getActivity().getSupportFragmentManager(); Fragment_class main = (Fragment_class)fm.findFragmentById(R.id.container); if (main != null){ main.なんか } }catch(ClassCastException e){ }