如何解决自定义数据对象在片段之间传递时保存其数据 - android
我在我的项目中使用了 android jetpack 导航。所以我有一个活动和多个片段。我意识到,如果我在片段 a 中创建一个对象并将其传递给片段 b,当我更改片段 b 中的对象字段值并使用 onbackpressed() 方法返回片段 a 时,片段 a 中的对象不会更新。但是,如果我将相同的对象从片段 b 传递到片段 c 结束更改片段 c 中的对象字段值并返回片段 b 则更新片段 b 中的对象数据。那么这里有什么区别?
片段 A
Product prd = new Product();
prd.setId(Utils.getRandomString(6));
Bundle bundle = new Bundle();
bundle.putParcelable(Constants.EXTRA_PRODUCT,prd);
newPrd.setOnClickListener((v) -> navController.navigate(R.id.action_navigation_dashboard_to_productEditorFragment,bundle));
片段 B
@Override
public void onViewCreated(@NonNull View view,@Nullable Bundle savedInstanceState) {
super.onViewCreated(view,savedInstanceState);
if (getArguments() != null) {
product = getArguments().getParcelable(Constants.EXTRA_PRODUCT);
if (product != null) {
fillViews(product);
}
}}
private void sendObjectToFragmentC() {
Bundle bundle = new Bundle();
if (product!= null)
bundle.putParcelable(Constants.EXTRA_PRODUCT,product);
navController.navigate(R.id.action_productEditorFragment_to_tagSelectFragment,bundle);
}
片段 C
if (getArguments() != null) {
product = getArguments().getParcelable(Constants.EXTRA_PRODUCT);
if (product != null) {
fillViews(product);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。