我要去FragmentA-> FragmentB.现在从FragmentB我想将数据传递给FragmentA.So我该怎么做?
目前我正在使用FragmentB-> FragmentA getCustomFragmentManager().popBackStack();
但没有传递任何值.
我已经开始使用Android体系结构组件(导航和安全Args,视图模型)以及Koin库。
目前,我在两个片段之间传递参数时遇到了问题-我需要将一个字符串值从片段A传递到片段B,在片段B中修改此值,然后将其传递回片段A。
我找到了解决我的问题的一种可能的方法-共享视图模型。不幸的是,这种方法有一个问题,因为我可以在屏幕之间传递和修改值,但是当片段A导航到另一个目标时,共享视图模型中的值仍会存储而不清除。
在Android导航中的片段之间传递和修改数据是否有其他解决方案?我想避免手动清除此值(当碎片A被破坏时)。
android android-navigation koin android-jetpack android-architecture-navigation
我有一个表单,有一个字段可以从列表中选择任何项目。我已经使用片段来显示列表,并希望在返回到上一个片段时更新所选值。我不需要根据要求使用本地数据库。
我正在使用下面的行来导航我的第二个片段。
navHostFragment.getNavController().navigate(R.id.action_fragmentA_to_fragmentB);
Run Code Online (Sandbox Code Playgroud)
然后在返回时,无论用户选择什么值,我想在第一个片段上显示
FragmentB fragmentB= (FragmentB)getFragment(FragmentB.class);
if(fragmentB!=null){
fragmentB.setUpType(name,resource);
}
public Fragment getFragment(Class fragmentReq) {
List<Fragment> fragmentList = navHostFragment.getChildFragmentManager().getFragments();
for (Fragment fragment : fragmentList) {
if (fragment.getClass() == fragmentReq)
return fragment;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
谁能帮帮我吗?提前致谢。