我通过从fragment1到fragment2的bundle传递数据。
片段1代码:
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();
片段2代码:
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 的两个片段中都得到了相同的参考。在更改第二个片段上的数据时,第一个片段中的数据会自动更改。因为参考是一样的。
因此,在按下返回按钮时,数据也会发生变化。但我不想在按下后退按钮时进行任何更改。
如何解决这个问题?