2

アクティビティの oncreate 内にフラグメントを追加しています。ボタンをクリックすると、同じフラグメントをアクティビティに追加する必要があります (新しいデータが読み込まれ、フラグメントで表示されます)。また、データがロードされた後に setHasOptionsMenu(true) を呼び出しています。フラグメントに表示されたデータは、アクションバーの共有アイコンをクリックして共有する必要があります。

アクティビティ クラスにフラグメントを追加する:

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.add(R.id.myFragContainerLayout, myFrag);
    ft.addToBackStack(null);
    ft.commit();

フラグメントのオプション メニュー:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.clear();
    inflater.inflate(R.menu.share_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

フラグメントが追加され、問題なくフラグメントをバックスタックできますが、アクション アイテムをクリックすると、最初のフラグメントに表示されるデータが共有されます。以下の行を使用する場合 (つまり、現在のフラグメントを追加する代わりに他のフラグメントに置き換える)、すべて正常に機能しますが、バックを押すとフラグメントが再度読み込まれます。どこが間違っているのですか?私を助けてください。

 ft.replace(R.id.myFragContainerLayout, myFrag);
4

1 に答える 1

1

onOptionsItenSelected() は return super.onOptionsItemSelected(item); を返していました。true を返すように変更。それでおしまい。問題を修正しました

于 2014-03-03T18:03:12.920 に答える