我在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会再次调用,并返回到第一个视图。
我该如何保持这个状态?不让onNavigationItem在onCreate时被调用并且index为0?
编辑:
根据Kirill的答案,可以存储当前索引,但有第三个视图不能通过导航列表选择,如果我在onCreate后不调用setNavigationItemSelected,它将自动使用index = 0触发,并将应用程序返回到第一个视图。
这就是我的问题。