使用FragmentTabHost的Android活动 - 从细节调用回来" onCreate"在MainActivity中

时间:2015-04-16 12:02:19

标签: android android-fragments android-listview oncreate onrestoreinstancestate

我在Samsung Alpha(4.4.4)上面临一些奇怪的行为。我已经构建了一个带有MainActivity的应用程序,该应用程序具有4个不同Fragments(Tabs)的FragmentTabHost。在每个选项卡上,您可以搜索不同的内容,当点击其中一个时,将调用一个新活动并显示详细信息。

现在,在我的Samsung S3(4.2)和模拟器(4.4,Samsung 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

0 个答案:

没有答案