フラグメント 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 番目のフラグメントのデータを変更すると、最初のフラグメントのデータが自動的に変更されます。参考書は同じだから。
そのため、戻るボタンを押すと、データが変更されます。しかし、戻るボタンを押しても何の変化も望んでいません。
この問題を解決するにはどうすればよいですか?