java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)
何时/如何添加ListView适配器,是否使用“后退”按钮恢复?
我想从FragmentB
移回Fragment A
,并拥有与转到FragmentB
之前相同的适配器
@Override
public void onViewCreated(@NonNull View view, @Nullable final Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
adapter = new UserAdapter(getContext(), R.layout.list_item, userList);
}
有了这个,我总是在创造一个新的。我只想创建一次,然后保存它
# 1 楼答案
实际的解决方案取决于您的片段事务,以及您的片段是否在事务中被销毁的事实
如果它在从第二个片段返回后仍然存在,那么您可以简单地使用另一个生命周期回调(onCreated)。这样,适配器将只创建一次:
如果您的片段无法存活(如果它被替换和销毁),那么您必须保存适配器的状态,创建一个新的适配器,并对其应用旧的(保存的)状态
# 2 楼答案
我找到了一个解决方案。对于任何有同样问题的人:
像这样在你的片段中创建一个布尔值,并检查你的片段是哪个版本。这样,您只能在开始时创建适配器,而不能在每次返回时覆盖它