当导航到另一个活动时,选项菜单停止显示

时间:2013-08-09 16:40:15

标签: android tabactivity android-optionsmenu

我有以下结构:

enter image description here

我的问题是每当我从活动 1,2或3转到 SubActivities 并返回活动时,选项菜单停止显示(onCreateOptionsMenuonPrepareOptionsMenu)。我的猜测是,这是因为活动在调用 SubActivities 时停止,然后激活未重新创建(onCreate未被调用)当我回到他们身边时。

有可能在恢复活动时强制onCreateOptionsMenu被调用(在onResume中)吗?

更新

我明白现在发生了什么。问题是选项菜单是从TabActivity调用的,而不是从它下面的活动调用的。我需要运行活动onCreateOptionsMenu / onPrepareOptionsMenu而不是TabActivity

4 个答案:

答案 0 :(得分:0)

我只是在我需要它的每个活动中调用onCreateOptionsMenu然后单独更改onCreateOptionsMenu上的每个活动的上下文以反映senario所以当活动恢复时所以它的onCreateOptionsMenu .....希望有帮助

答案 1 :(得分:0)

解决了我的问题。问题是选项菜单是从TabActivity调用的,而不是从它下面的活动调用的。我做的是:

在我的TabActivity

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_view, menu);
    return true;
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    menu.clear();
    inflater.inflate(R.menu.my_view, menu);
    return true;
}

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    return getCurrentActivity().onMenuItemSelected(featureId, item);
}

在活动中:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        return super.onPrepareOptionsMenu(menu);
    }
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
// Do my work in the Activity
}

答案 2 :(得分:0)

我只是在每个活动中使用它我想要菜单选项说如果我在活动1我的菜单选项反映活动2,3当我在活动2我的菜单选项反映1,3等等但在每个有一个菜单的活动,你必须把代码放在这样做,当你在活动之间切换时,你将总是有一个菜单.....它对我有用我不知道它是最好的方式,但它适用于我

答案 3 :(得分:-1)

public boolean onCreateOptionsMenu(Menu menu){         super.onCreateOptionsMenu(菜单);

    menu.add (Menu.NONE, 0, Menu.NONE,(""));
    menu.add(Menu.NONE, 1, Menu.NONE, (""));
    menu.add(Menu.NONE, 2, Menu.NONE,(""));
    menu.add(Menu.NONE, 3, Menu.NONE,(""));
    menu.add(Menu.NONE, 4, Menu.NONE,(""));
    menu.add(Menu.NONE, 5, Menu.NONE,(""));
    menu.add(Menu.NONE, 6, Menu.NONE,(""));
    menu.add(Menu.NONE, 7, Menu.NONE,(""));
    menu.add(Menu.NONE, 8, Menu.NONE,(""));
    menu.add(Menu.NONE, 9, Menu.NONE,(""));
    return true;
} // end onCreateOptionsMenu()

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case 0:

            return true;
        case 1:

            return true;
        case 2:


          return true;
        case 3:



             return true;
        case 4:


            return true;
        case 5:




            return true;
        case 6:

           return true;
        case 7:




            return true;
        case 8:


            return true;
        case 9:



            return true;


    }
    return false;
}

是我使用的...如果这有帮助,可以查看我的问题“在光标中的append.text片段”....我非常绝望地寻求帮助