我有一个实现自定义侦听器的片段。
使用addToBackStack()
现在,如果我从新片段中弹出后台,我正在呼叫我的听众做someMethod()
。问题是该方法与视图相关联。当然,由于尚未创建视图,因此会返回错误。
我正在考虑使用Handler延迟该方法,但这似乎是错误的。有什么方法可以将我的数据传递给前一个片段吗?或至少检查视图是否已创建。
这是我替换/弹出片段时的方法:
String backStateName = fragment.getClass().getName();
boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);
if (!fragmentPopped) { //fragment not in back stack, create it.
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.container, fragment);
ft.addToBackStack(backStateName);
ft.commit();
}
我有多个片段,可能会回到第一个片段。所以说我有5个片段。
B C是堆栈。然后我用这种方法回到A.