2016-07-05 13 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) 

がフラグメントクラスである:ここ (このサイトにはかなり新しい悪いフォーマットイム申し訳ありません)logcatでありますあなたは私のmainactivity.javaまたはメインのXMLファイルを見たいと思うし、私は明日目を覚ますときにそれを追加します。助けてくれてありがとう! ListFragmentはあなたのためにそれを扱うよう(あるいは、少なくともしようとして)

答えて

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

通常、ListFragmentで、あなたは、onCreateView()を上書きしません。 に変更してonCreateView()をオーバーライドし、膨らませたレイアウトを返却すると、そのレイアウトListViewandroid:id="@android:id/list"となる必要があります。あなたはしません。

+0

まずはお手伝いいただきありがとうございます。私はonCreateViewのコードを取り除き、コードをonActivityCreatedに移動し、コンテナとインフレータを保存して、ビューを取得して操作できるようにしました。 Viewビュー= myInflater.inflate(R.layout.listview_fragment、myContainer、false);を使用すると、この読み込みアニメーションと何も表示されません(リストビューが表示される場所) –

+0

@RomEz:リストビューはアダプタを持っています。 – CommonsWare

+0

はい、私は間違っていると思います。私はインターネットから情報を得ています。リストビューにはいくつか含まれているはずですが、フラグメントが作成され、onActivityCreated私が使用している配列はまだヌルです。あなたはそれを引き起こしていると思いますか?それには何らかの解決策がありますか?情報の後にカスタムアダプターを作成するにはどうすればいいですか?これはおそらくこれによるものです。 –

関連する問題