带有片段的Android操作栏下拉导航,弹出backstack时将项目更改为上一个

时间:2014-11-27 16:55:46

标签: android android-fragments

当我弹出后台时,如何以正确的方式将菜单项更改回上一个?

在onCreate中,我有以下内容来创建菜单:

actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);


ArrayList<String> itemList = new ArrayList<String>();
itemList.add(getString(R.string.planning_shift));
itemList.add(getString(R.string.planning_personal));
itemList.add(getString(R.string.planning_line_statistics));
ArrayAdapter<String> aAdpt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, itemList);
actionBar.setListNavigationCallbacks(aAdpt, this);

有了这个,我也有:

@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
        FragmentManager fragmentManager = getFragmentManager();
        switch (itemPosition) {
        case 0:
            fragmentManager.beginTransaction()
                    .replace(R.id.container, new ActivityPlanningFragment())
                    .commitAllowingStateLoss();
            break;
        case 1:
            fragmentManager.beginTransaction()
                    .replace(R.id.container, new MyActivityPlanningFragment())
                    .addToBackStack("MyActivityPlanningFragment").commit();
            break;
        case 2: 
            fragmentManager.beginTransaction()
                    .replace(R.id.container, new LineSearchFragment())
                    .addToBackStack("LineSearchFragment").commit();
            break;
        }
}

当我打开应用程序时,我加载了第一个片段,位置0.然后如果我在下拉导航中选择位置1和2之后。然后弹出后面的堆栈。如何让下拉显示正确的项目?

如果我使用actionBar.setSelectedNavigationItem(item);,我会点击一个项目,然后再次添加。建议?

0 个答案:

没有答案