私はそのようなことをしたいです。絵は言葉よりも簡単です:
ユーザーがフラグメント B のボタンをクリックすると、フラグメント B は変更されましたが、A は変更されませんでした。最初のものは次のようなレイアウトを持っています
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.my.app.ContactsFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contacts_fragment" />
簡単なアクティビティ呼び出しを使用して、フラグメント レイアウトにボタンがあります。
Intent intent = new Intent(getActivity(), NextActivity.class);
startActivity(intent);
そして土地のものはそのようなものです:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.my.app.ContactsFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contacts_fragment" />
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.my.app.HomeFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_container" />
</LinearLayout>
次のコードを使用して内部フラグメントを変更します。
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
NextFragment nextFrag = new NextFragment();
ft.replace(R.id.fragment_container, nextFrag);
ft.addToBackStack(null);
ft.commit();
この部分はうまく機能します。
2 つの質問があります。
メイン アクティビティのコンテンツを変更するこれら 2 つの方法をどのように配置しますか? つまり、メイン アクティビティでは、フラグメントは 2 番目の方法を呼び出す必要がありますが、通常のアクティビティでは、最初の方法を呼び出す必要があります。
フラグメント A の項目をクリックしてから、フラグメント B のボタンをクリックすると、フラグメントが NextFragment に変更されます。別のアイテムをクリックしても同じことをします。最初のユーザーに戻ることができます。新しいアイテムをクリックしたときにスタックをダンプする方法はありますか?
ご協力いただきありがとうございます。
Ps: サポート v4 ではなく、ネイティブ フラグメント ライブラリを使用しています。