2016-07-05 3 views
-3

우선, 이것은 꽤 일반적인 예외이지만, 여기서 묻기 전에 대답을 찾기 위해 최선을 다했습니다.ListFragment android.view.InflateException

public class ListviewFragment extends ListFragment { 
    static ListView mainListview; 
    public static Context context; 
    static Article [] articlesToUse; 
    static Bitmap [] thumbnailImages; 
    static String [] titles; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     //Inflate the fragment layout file 
     View view= inflater.inflate(R.layout.listview_fragment, container, false); 
     mainListview = (ListView) view.findViewById(R.id.listView); 
     context = getActivity(); 
     mainListview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent articleIntent= new Intent(ListviewFragment.this.getActivity(), MainArticle.class); 
       final String bodyOfArticle = articlesToUse[position].getBody(); 
       final String titleOfArticle = articlesToUse[position].getTitle(); 
       articleIntent.putExtra("bodyOfArticle", bodyOfArticle); 
       articleIntent.putExtra("titleOfArticle", titleOfArticle); 
       startActivity(articleIntent); 
      } 
     }); 
     return view; 
    } 
    public static void setListView(Article [] articles){ 
     if(articles == null) 
      Toast.makeText(context, R.string.error_connection, Toast.LENGTH_LONG).show(); 
     else { 
      titles = new String[articles.length]; 
      thumbnailImages = new Bitmap[articles.length]; 
      articlesToUse = new Article[articles.length]; 
      for (int i = 0; i < articles.length; i++) { 
       titles[i] = articles[i].getTitle(); 
       thumbnailImages[i] = articles[i].getThumbnailImage(); 
       articlesToUse[i] = new Article(articles[i]);// 
      } 
      CustomAdapter customAdapter = new CustomAdapter(context, titles, thumbnailImages); 
      mainListview.setAdapter(customAdapter); 
     } 
    } 

} 

나는 문제가에 있지만 경우입니다 즉 생각 : 여기

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.rome.codzombiesinfo, PID: 6315 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rome.codzombiesinfo/com.example.rome.codzombiesinfo.MainActivity}: android.view.InflateException: Binary XML file line #44: Binary XML file line #44: Error inflating class fragment 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5422) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: android.view.InflateException: Binary XML file line #44: Binary XML file line #44: Error inflating class fragment 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at com.example.rome.codzombiesinfo.MainActivity.onCreate(MainActivity.java:37) 
    at android.app.Activity.performCreate(Activity.java:6251) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5422) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: android.view.InflateException: Binary XML file line #44: Error inflating class fragment 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at com.example.rome.codzombiesinfo.MainActivity.onCreate(MainActivity.java:37) 
    at android.app.Activity.performCreate(Activity.java:6251) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5422) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
    at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344) 
    at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1046) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230) 
    at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1332) 
    at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2288) 
    at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) 
    at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357) 
    at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31) 
    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:80) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at com.example.rome.codzombiesinfo.MainActivity.onCreate(MainActivity.java:37) 
    at android.app.Activity.performCreate(Activity.java:6251) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5422) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

이 조각 클래스입니다 : 여기 (이 사이트에 아주 새로운 나쁜 포맷 메신저 죄송합니다)에 로그 캣입니다 당신은 내 mainactivity.java 또는 기본 XML 파일을보고 싶어 그리고 내가 바로 일어나면 바로 추가 할게. 도와 주셔서 감사합니다! ListFragment 당신을 위해 것을 처리로, 당신은 onCreateView()를 오버라이드 (override)하지 않는, ListFragment으로,

답변

0
Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 

일반적으로 (또는 적어도 시도). 으로 변경하고 onCreateView()을 부풀린 다음 일부 레이아웃을 반납하면 해당 레이아웃 ListView이고 android:id="@android:id/list"이어야합니다. 너는 그렇지 않아.

+0

먼저 도움을 주셔서 감사 드리며 onCreateView에 있던 코드를 제거하고 onActivityCreated로 코드를 옮기고보기 만하면 컨테이너와 인레이가 저장되어보기가 가능해집니다. View 뷰 = myInflater.inflate (R.layout.listview_fragment, myContainer, false)를 사용하여,이로드 애니메이션과 아무것도 얻지 못했습니다. (리스트 뷰가 있어야합니다) –

+0

@RomEz : ListView' 어댑터를 사용합니다. – CommonsWare

+0

그래,하지만 내가 잘못하고있는 것 같아. 인터넷에서 정보를 가져 오는 중이 야 및 목록보기 일부가 포함되어야하지만 조각을 만들고 onActivityCreated 호출 될 때 내가 사용하는 배열은 여전히 ​​null입니다. 당신은 그 원인을 생각합니까? 당신은 그것에 대한 해결책이 있습니까? - 정보 뒤에 사용자 정의 어댑터를 만드는 방법 - Edit- 아마 이것 때문일 것입니다. –