私はハニカムアプリを作成しています。フラグメント間を切り替えることはできません。ここに私のメインのコードは次のとおりです。リストビューとフラグメント
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = (ListView)findViewById(R.id.list);
A = new FragmentA();
B = new FragmentB();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
list.setAdapter(adapter);
list.setOnItemClickListener(mylistener);
}
public void changeFragment(Fragment f){
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment, f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
public OnItemClickListener mylistener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
switch(position){
case 0 : changeFragment(A);
break;
case 1 : changeFragment(B);
break;
}
}
};
私は削除する必要がなく、どのように私はすでにてるものを削除することができ、「置き換え」を置く前に、私が知っていますか? ログに何を伝えていますか: 指定した子にはすでに親があります。子の親で最初にremoveView()を呼び出す必要があります。
リストの最初の項目を選択するとフラグメントAが表示されることを明確にできますか?もしそうなら、リストの2番目の項目を選択するとどうなりますか?私はあなたのコメントを「私がすでに持っているものを削除するにはどうしたらいいですか? – PJL
ここで私が今あるのはフラグメントAです。フラグメント1をクリックするとフラグメントAを開きます。フラグメント2を開くと2つのフラグメントBが表示されます。リスト内のアイテムをクリックしてフラグメントAからフラグメントBに渡します。 – Tsunaze
APIデモのFragmentLayoutサンプルは、私が信じたいものと似たようなものです。最初に何らかの保護を追加してください。同じリストエントリをクリックしたときに同じフラグメントをリロードしないでください。次に参照を維持するときは注意してください。[リンク](http://stackoverflow.com/questions/6250580/fragment-already-added-illegalstateexception) – PJL