2016-09-07 20 views
0

我有一個活動。在此活動中,我設定片段B.然後在片段B,我叫DialogFragment C.現在我想調用方法DialogFragment KonfirmasiPembayaranPesertaFragment,但該方法沒有得到所謂的無法通過活動調用DialogFragment中的方法

這是我的電話DialogFragment KonfirmasiPembayaranPesertaFragment在片段B

FragmentManager fragmentManager = getChildFragmentManager(); 
     KonfirmasiPembayaranPesertaFragment manageFaq = new KonfirmasiPembayaranPesertaFragment(); 
     manageFaq.setTargetFragment(this, 0); 
     manageFaq.setCancelable(false); 
     manageFaq.setDialogTitle("Konfirmasi Pembayaran Pendaftaran Peserta"); 
     manageFaq.show(fragmentManager, "Konfirmasi"); 
     manageFaq.setData(detailJadwal); 

現在我打電話方法DialogFragment從我ParentActivity

KonfirmasiPembayaranPesertaFragment curFrag = (KonfirmasiPembayaranPesertaFragment) 
        getSupportFragmentManager().findFragmentByTag("Konfirmasi"); 
      if(curFrag!=null && curFrag.getDialog()!=null 
        && curFrag.getDialog().isShowing()) { 
       // call method 
      } else { 
       // DialogFragment not detect 
      } 

問題:curFrag爲null,那麼如何解決它?

+0

請檢查以下行:FragmentManager fragmentManager = getChildFragmentManager();爲什麼不使用getFragmentManager()? – TOP

+0

由於KonfirmasiPembayaranPesertaFragment從另一個片段調用(片段B) –

+0

您可以調用片段B中的getFragmentManager() – TOP

回答

0
Fragment curFrag = getFragmentManager().findFragmentByTag("Konfirmasi"); 
     if (curFrag != null) { 
      FragmentTransaction removeTransaction = getFragmentManager().beginTransaction(); 
      removeTransaction.remove(prev); 
      removeTransaction.commit(); 
     } 

     // Create and show the dialog Fragment. 
     if(curFrag ==null){ 
      curFrag = new KonfirmasiPembayaranPesertaFragment(); 
     } 
     curFrag.show(getFragmentManager(),"Konfirmasi"); 
    }