0

フラグメント 1 からフラグメント 2 にバンドルを介してデータを渡しています。

Fragment1コード:

SecondFragment secondFragment = new SecondFragment();
    Bundle bundle = new Bundle();
    bundle.putSerializable("SendPojo", sendPojo);
    secondFragment.setArguments(bundle);
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.layout, secondFragment, "Second Fragment");
    transaction.addToBackStack("Second Fragment");
    transaction.commit();

Fragment2 コード:

SendPojo sendPojo;
    Bundle bundle = getArguments();
    SendPojo sendPojo = (SendPojo) bundle.getSerializable("SendPojo");
    sendPojo.data = "Changed";

Pojo クラスコード:

public class SendPojo implements Serializable {
    public transient String data = "";
}

SendPojo の両方のフラグメントで同じ参照を取得しています。2 番目のフラグメントのデータを変更すると、最初のフラグメントのデータが自動的に変更されます。参考書は同じだから。

そのため、戻るボタンを押すと、データが変更されます。しかし、戻るボタンを押しても何の変化も望んでいません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1