Samsung Alpha (4.4.4) で奇妙な動作に直面しています。4 つの異なる(タブ)MainActivity
を持つ FragmentTabHost を持つアプリを作成しました。Fragments
これらのタブのそれぞれで、さまざまなものを検索できます。そのうちの 1 つをタップすると、新しいアクティビティが呼び出され、詳細が表示されます。
現在、Samsung S3 (4.2) とエミュレーター (4.4、Samsung S5) でアプリを実行すると、すべて正常に動作します。つまり、詳細をクリックして [マイ] に戻るとMainActivity
、リストのエントリ (およびすべての他のフラグメントはその状態で存在します)。今、ギルフレンドの携帯電話、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