0

사용자가 ListView의 항목을 누를 때 안드로이드에 새 단편을 표시하려고합니다. 이 코드를 실행하고 목록보기에서 항목을 탭하면새 조각을 표시 할 수 없습니다. 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를 조각 컨테이너 ID로 바꾸십시오. ft.replace (R.id.frag_container) –

+1

R.java가 손상되었을 수 있습니다. 그 이유는 뷰 ID를 찾을 수없는 이유 일 수 있습니다. 프로젝트 빌드 정리 (Eclipse에서 Project -> Clean)로 이동 한 다음 실행하십시오. – faizal

+0

활동 레이아웃 파일을 추가하십시오 – Sayem

답변

0

ft.replace이 (INT containerViewId, 조각 fragment, String 태그) 컨테이너에 추가 된 기존 조각을 바꿉니다. containerViewId는 조각을 바꿀 컨테이너의 식별자입니다. 그것은 레이아웃이 아닙니다. 활동 레이아웃 XML의

확인,

ft.replace (R.layout.fragment_favorites, DF, "DetailFragment") .addToBackStack (널) .setTransition를 교체 조각

의 ID를 찾을 수 (FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); .

ft.replace ("당신의 조각 ID가", DF, "DetailFragment")와

커밋();

관련 문제