Android 3 以降のデバイス向けに、ActionBar NavigationMode (DROP_DOWN_LIST) を使用してビューのナビゲーションを実装しました。
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
getActionBar().setListNavigationCallbacks(mSpinnerAdapter, new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int index, long arg1) {
if(index == 0)
selectHomeView();
else
selectMainView();
return true;
}
});
これは意図したとおりに機能しますが、向きが変わると、onNavigationItemSelected が index = 0 で再度呼び出され、Activity が最初のビューに戻ります。
どうすればこの状態を維持できますか? onNavigationItem をインデックス 0 onCreate で呼び出さないでください。
編集:
Kirillの回答に続いて、現在のinedxを保存することは可能ですが、NavigationListから選択できない3番目のビューがあり、onCreateの後にsetNavigationItemSelectedを呼び出さない場合、これはindex = 0で自動的に起動し、アプリケーションを最初に戻します見る。
これは私の問題です。