-1

我有一個活動,片段A動態添加到它。現在,我從片段A到片段B進行處理,然後從片段B到片段C.現在我點擊一個按鈕時會有一個按鈕進行調用。我無法啓動呼叫意圖,錯誤日誌顯示非法狀態異常 - 找不到處理意圖的活動。這是否意味着沒有發現嵌套片段C的活動?這怎麼可能發生(沒有活動的片段創建)?所有片段也都是在運行時動態創建的。 我嘗試過使用getfragmentmanager()和getchildfragmentmanager()方法。 我在這兩種情況下都面臨這個錯誤。任何建議將不勝感激。嵌套片段 - 沒有活動來處理意圖

這裏是我的代碼片段

附加片段A到活動

FragmentManager fm = getFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.add(R.id.container,FragmentA_.builder().build()); 
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
ft.addToBackStack(null); 
ft.commit(); 

更換片段A與片段B

FragmentManager fm = getFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.replace(R.id.container, FragmentB_.builder().build()); 
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
ft.addToBackStack(null); 
ft.commit(); 

與C片段更換片段B

FragmentManager fm = getFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.replace(R.id.container, FragmentC_.builder().build()); 
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
ft.addToBackStack(null); 
ft.commit(); 

呼叫意圖

public void call(String contact){ 
Intent i=new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+contact)); 
getActivity().startActivity(i); 
} 

在我的manifest.xml我已經加入了通話的所有權限。

編輯 - 2 片段C代碼

@EFragment(R.layout.fragment_c) 
public class FragmentC extends Fragment 
{ 
@Click(R.id.call_button) 
void call(){ 
call(phone_number); 
} 
    public void call(String contact){ 
    Intent i=new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+contact)); 
    getActivity().startActivity(i); 
    } 
} 
+0

不,我非常確定,我已經按照我的問題中提到的附件順序。另外我只加了片段A,休息了我用過的所有片段替換方法。 – Krishna

+1

你可以在你發起呼叫意向的地方發佈代碼,我也想看看你的權限。 – himanshu1496

+0

你能分享一些代碼嗎? –

回答

0

刪除getActivity()和直接調用startActivity(ⅰ)

片段具有其自己的startActivity()方法。在這種情況下,您不需要傳遞活動上下文或引用。欲瞭解更多信息:Click here

+1

非常感謝您的及時回覆!真的很感激它! – Krishna

相關問題