【发布时间】:2018-03-28 09:44:28
【问题描述】:
我有一个片段,我们称之为FragmentA。在FragmentA 内部,我启动了一个Activity,它更改了我在FragmentA 中显示的数据,一旦我完成了我启动的Activity,我将返回FragmentA。问题是,当这种情况发生时,FragmentA 仍然显示旧数据。因此,我尝试在 onResume 中将 FragmentA 替换为自身的新实例,但无济于事,因为现在 FragmentA 导致整个 viewpager(它所属的)冻结。
这是我的代码:
@Override
public void onResume() {
super.onResume();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.detach(this);
fragmentTransaction.attach(this);
fragmentTransaction.commit();
}
我也尝试用这个代码替换FragmentA:
@Override
public void onResume() {
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
FragmentA fragment = FragmentA.newInstance();
fragmentTransaction.replace(ID?, fragment);
fragmentTransaction.commit();
}
但我不知道如何检索“ID”?在fragmentTransaction.replace 中使用。我对 Android 很陌生,但我仍然不确定如何做某些事情。提前谢谢你。
【问题讨论】:
-
@pskink 这正是我最初尝试做的事情,只需调用检索数据并将它们绑定到片段中的视图的代码。但我无法弄清楚为什么尽管使用了代码并且正确检索了新数据,但视图根本没有改变。所以,我想,我只需要以某种方式重新创建片段......
标签: android android-activity fragment onresume fragmenttransaction