android - I used navigation in my app,How can I launch a Fragment for which I get a result when it finished?
问题描述
I have two Fragments Fragment1 and Fragment2,In Fragment1 I use findNavController().navigate() launch the Fragment2,When Fragment2 finished,How to pass the data to Fragment1?(Translate by Google)
解决方案
您可以getParentFragment()
在 Fragment2 中使用将数据传输到 Fragment1。这仅在您通过getChildFragmentManager()
Fragment1 创建 Fragment2 时才有效。
如果你使用getSupportFragmentManager()
,Activity
那么你必须创建一个监听器。
class Fragment2 {
private UpdateFragment1Listener updateFragment1Listener;
void sendDataToFragment1() {
updateFragment1Listener.updateFragment(myData);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof UpdateFragment1Listener ) {
updateFragment1Listener = (UpdateFragment1Listener ) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement UpdateFragment1Listener ");
}
}
@Override
public void onDetach() {
super.onDetach();
updateFragment1Listener = null;
}
interface UpdateFragment1Listener {
void updateFragment1(MyData myData);
}
}
class MyActivity implements Fragment2.UpdateFragment1Listener {
private Fragment1 fragment1;
@Override
void updateFragment1(MyData myData) {
fragment1.update(myData);
}
}
推荐阅读
- powerbi - 将共享文件夹连接到 power bi
- python - 如何将卡住的功能包装在计时器块中?
- authentication - 将凭据传入和传出 Dialogflow 的最佳方式是什么
- python - 如何同时绘制带有样式编码和颜色编码的 swarmplot/stripplot
- javascript - 使用没有 style-src 'unsafe-inline' 的 ACE Web-Editor
- angular - 重定向后未显示角度材料表数据
- assembly - 由有符号单字节元素组成的正元素之和
- android - android上的axios请求应用程序不起作用,反应原生
- python - Pandas 在对值进行排序时出错
- json - 在 django 中检索 json 正文中的特定数据作为列表