2016-11-22 9 views
1

リストビューを含むフラグメントがあります。そのフラグメント内の私は、リスト内の項目のいずれかがクリックされるとすぐに別のフラグメントに移動しようとしていますが、私はリストビューを持つフラグメントから別のフラグメントにナビゲートできない

java.lang.UnsupportedOperationExceptionがあるというエラーを取得:addView(ビュー)でサポートされていませんがAdapterView

これは私のコード

private void setupList(View view) { 
     //super.onCreate(savedInstanceState); 
     //setContentView(R.layout.icons_main); 

     CustomListAdapter adapter = new CustomListAdapter(this.getActivity(), itemname, imgid); 
     //CustomListAdapter adapter=new CustomListAdapter(this, itemname, imgid); 
     list = (ListView) view.findViewById(R.id.list); 
     //(ListView)view.findViewById(R.id.lv_listview); 
     list.setAdapter(adapter); 
     list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      String Slecteditem = itemname[+position]; 
      // Toast.makeText(getApplicationContext(), Slecteditem, Toast.LENGTH_SHORT).show(); 

      Fragment fragment = new SensorInformationChildFragment(); 
      FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.replace(R.id.list, fragment); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 

     } 
     }); 
    } 

私は

java.lang.UnsupportedOperationException: addView(View) is not supported in AdapterView 
    at android.widget.AdapterView.addView(AdapterView.java:452) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1124) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290) 
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677) 
    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:536) 
    at android.os.Handler.handleCallback(Handler.java:808) 
    at android.os.Handler.dispatchMessage(Handler.java:103) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:5299) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
    at dalvik.system.NativeStart.main(Native Method) 
を取得していますエラーです
+1

アダプタービュー(ListView)は、子供をいじっているときに好きではありません。ちょっと外のコンテナを使用してください...編集:IMHO ListViewをListFragmentに置き換える方が良いでしょう... ListViewは、あなたがそうした問題を起こさないようにリストアするListFragmentの一部になります。 – Selvin

答えて

0

断片とその活動との間のやりとりのやり方は、それを助言するものではなく、実際にはほとんど機能しません!!

あなたが持っている断片について何かあります!あなたが渡したidはリストビューですが、アクティビティ内のフラグメントの最適な実装にはコンテナ(フレームレイアウトが優先されます)があります。必要に応じて、これは実行時に別のフラグメントに置き換えられます。しかし、それはあなたのようなリストビュー(アダプタビュー)を置き換えるように見えます。ですから、私の提案はactivity_main.xmlを準備しています。次に、 "container"というIDを持つFrame_Layoutを挿入します。次にリストビューで最初のフラグメントを準備し、実行時にコンテナのコンテンツ(フレームレイアウト)を別のフラグメントに置き換えます。

あなたが知る必要があるもう一つのことは、ANDROID DOCUMENTATIONは断片が自分自身の間でコミュニケーションしてはいけないと言いますが、親アクティビティーを通してだけであるので、ここに必ず従ってくださいということです。 Get all information here。その情報は公式のドキュメントですが、あなたが確認できる詳細とチュートリアルのためにあります This tutorialまたは Another Tutorial.

+0

@ xenolinありがとうございました私はチュートリアルでうまくいきます。私にリンクを教えてください。 – FlyBYNight

+0

@FlyBYNight必要なチュートリアルへのリンクを含む答えを修正しました。それが助けになったら私の答えを受け入れることを忘れないで!! – Xenolion

+0

私はそうするでしょう – FlyBYNight

関連する問題