0

我在三星 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

4

0 回答 0