0

我想在用戶點擊ListView中的項目時在Android中顯示新片段。這是我這樣做代碼:無法顯示新的片段Android

@Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 

      final FragmentManager fm = getFragmentManager(); 
      final FragmentTransaction ft = fm.beginTransaction(); 
      DetailFragment df = new DetailFragment(); 

      Toast.makeText(getActivity().getBaseContext(), "Clicked with R.id.list=" + R.id.list, Toast.LENGTH_LONG).show();  

      ft.replace(R.layout.fragment_favorites, df, "DetailFragment").addToBackStack(null).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit(); 
     } 

當我運行這段代碼並點擊列表視圖中的項目,我得到異常:

10-09 22:39:05.336: E/AndroidRuntime(25157): java.lang.IllegalArgumentException: No view found for id 0x7f030029 (com.example.proj1:layout/fragment_favorites) for fragment DetailFragment{42430970 #3 id=0x7f030029 DetailFragment} 
+2

將R.layout.fragment_favorites替換爲碎片容器的標識,ft.replace(R.id.frag_container) – 2014-10-10 03:05:51

+1

R.java可能已損壞。這可能是爲什麼無法找到視圖ID。嘗試清理構建您的項目(在Eclipse中,轉到項目 - >清理),然後運行它。 – faizal 2014-10-10 03:15:26

+0

添加活動佈局文件 – Sayem 2014-10-10 03:16:03

回答

0

ft.replace(INT containerViewId,片段片段,字符串標記) 替換已添加到容器的現有片段。 containerViewId是其碎片將被替換的容器的標識符。這不是佈局。

檢查你的活動佈局的xml,找到片段

的ID替換

ft.replace(R.layout.fragment_favorites,DF, 「DetailFragment」).addToBackStack(空).setTransition (FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit(); 。

ft.replace( 「您的片段ID」,DF, 「DetailFragment」)提交();