Windows Phone 8 から Android に移植するアプリケーションを作成しています。Android 開発に関する私の知識は限られています。
ナビゲーションドロワーを使用しています。私はすでにいくつかの実装を行っています。私が直面している問題/問題は、それらを切り替えるときにビューの状態を復元することです。
私はarcgis android sdkを使用しています。ビュー 1: インターネットから取得したリストビューの地理空間データ。ビュー 2: あなたの場所とビュー 1 で選択 (タップ) された場所を示すマップ ビュー 3: ビュー 1 からアイテムを取得する半径を増減するための設定ビュー。
ビューを切り替えるとき、ビューの状態を維持したい (状態を復元する)。
このようなシナリオでのベスト プラクティスは何ですか? 現在、フラグメントを使用しています。問題は、フラグメントを切り替えるときに onSaveInstanceState が呼び出されないことです。
これはフラグメントを切り替えるための私のコードですが、まったくうまく機能していません:)
private void selectItem(int position) {
// Create a new fragment and specify the planet to show based on position
Fragment f;
FragmentTransaction ft = fragManager.beginTransaction();
switch(position) {
case 0:
if((f = fragManager.findFragmentByTag("home")) == null) {
f = Fragment.instantiate(this, HomeFragment.class.getName());
f.setRetainInstance(true);
ft.add(R.id.content_frame, f, "home");
} else {
ft.attach(f);
}
break;
case 1:
if((f = fragManager.findFragmentByTag("map")) == null) {
f = Fragment.instantiate(this, MapFragment.class.getName());
f.setRetainInstance(true);
ft.add(R.id.content_frame, f, "map");
} else {
ft.attach(f);
}
break;
case 2:
if((f = fragManager.findFragmentByTag("settings")) == null) {
f = Fragment.instantiate(this, SettingsFragment.class.getName());
f.setRetainInstance(true);
ft.add(R.id.content_frame, f, "settings");
} else {
ft.attach(f);
}
break;
}
ft.commit();
// Highlight the selected item, update the title, and close the drawer
mDrawerList.setItemChecked(position, true);
setTitle(tabs[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}