嵌套片段问题 - frag1 调用 frag2,这对 frag1 的列表视图有影响
Nested fragment issue - frag1 calls frag2 which has an impact on the listview from frag1
我认为对片段的调用是同步的,但事实并非如此。我有一个片段 1,其中包含我通过适配器更新的列表视图。然后我有一个启动片段 2 的按钮。Frag2 对 frag1 的列表视图有影响,所以我想我可以按如下方式进行。但是当我点击按钮 btn1 时,我的片段 frag2 被启动,并且在我看到 log.i.
我想避免在 frag1 中使用刷新按钮。
有没有办法在 frag2 结束后立即执行操作?
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
context = getActivity().getApplicationContext();
initFindView();
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Frag2 f2 = new Frag2();
ft.replace(R.id.content_frame, f2);
ft.addToBackStack(null);
ft.commit();
Log.i("TEST","Test - back from tst2");
}
});
}
根据你的问题,你看起来只需要结果,你可以通过 startActivity(ForResult) 或 Fragments 通过 ResultReceiver 实现它,这是一个你可以用作参数的 Parcelable,然后等待结果更新你的碎片 1.
我认为对片段的调用是同步的,但事实并非如此。我有一个片段 1,其中包含我通过适配器更新的列表视图。然后我有一个启动片段 2 的按钮。Frag2 对 frag1 的列表视图有影响,所以我想我可以按如下方式进行。但是当我点击按钮 btn1 时,我的片段 frag2 被启动,并且在我看到 log.i.
我想避免在 frag1 中使用刷新按钮。
有没有办法在 frag2 结束后立即执行操作?
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
context = getActivity().getApplicationContext();
initFindView();
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Frag2 f2 = new Frag2();
ft.replace(R.id.content_frame, f2);
ft.addToBackStack(null);
ft.commit();
Log.i("TEST","Test - back from tst2");
}
});
}
根据你的问题,你看起来只需要结果,你可以通过 startActivity(ForResult) 或 Fragments 通过 ResultReceiver 实现它,这是一个你可以用作参数的 Parcelable,然后等待结果更新你的碎片 1.