我在三星 Alpha (4.4.4) 上遇到了一些奇怪的行为。我已经构建了一个应用程序,该应用程序具有一个带有 4 个不同(选项卡)MainActivity
的 FragmentTabHost 。Fragments
在每个选项卡上,您都可以搜索不同的内容,当点击其中一个选项卡时,将调用一个新活动并显示详细信息。
现在,在我的三星 S3(4.2)和模拟器(4.4,三星 S5)上运行应用程序时,一切正常,这意味着,当我点击详细信息并返回我的列表时,MainActivity
我仍然可以看到我的列表条目(以及所有其他片段保持其状态)。现在,当我在我的 gilfriends 手机 Samsung Alpha 4.4.4 上运行我的应用程序时,每次我从详细信息返回时onCreate
,我的**MainActivity**
这当然意味着我所有的片段都被再次创建(所以它们是空的)。手机的行为怎么可能不同,我可以做些什么来保存我的数据?我知道我可以保存我的列表条目并恢复它们(然后每次有人点击详细信息时我都必须恢复我的所有片段),但我认为,因为它在我的手机上工作,也许它是一个标志或者我必须设置的东西。这就是我在导航回我的活动后恢复我的列表的方式:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
registerForContextMenu(getView());
if (mPersonList == null)
mPersonList = new ArrayList<Person>();
mListView = (SwipeListView)getActivity().findViewById(R.id.liste_personen);
if (mPersonAdapter != null)
mPersonAdapter = new ArrayAdapterPerson(getActivity(), R.layout.zelle_person, mPersonList,mPersonAdapter.getGefilterteListe());
else
mPersonAdapter = new ArrayAdapterPerson(getActivity(), R.layout.zelle_person, mPersonList,mPersonList);
mListView.setAdapter(mPersonAdapter);
}
但是由于活动和片段是新创建mPersonList
的,所以总是null