ActivityとFragmentとChildFragmentの連動

ややこしいからメモ

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){
 }

 

↓弊社で開発、販売しているソフトウェアです↓

MediMonitor無料ダウンロード  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です