0

我有以下结构:

在此处输入图像描述

我的问题是,每当我从活动1、2 或 3转到活动并返回活动时,选项菜单就会停止出现(既不onCreateOptionsMenu也不onPrepareOptionsMenu)。我的猜测是,这是因为调用SubActivities时停止了活动,然后没有重新创建活动(onCreate不调用)活动。

有没有办法onCreateOptionsMenu在 Activity 恢复时强制调用(在onResume)?

更新

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

4

4 回答 4

0

我只是在每个我需要它的活动中调用 onCreateOptionsMenu 然后单独更改每个活动 onCreateOptionsMenu 的上下文以反映情景,因此当活动恢复时,它的 onCreateOptionsMenu 也一样.....希望有帮助

于 2013-08-09T16:50:41.787 回答
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
}
于 2013-08-09T19:26:39.537 回答
0

我只是在每个活动中使用它 我想要菜单选项说如果我在活动 1 我的菜单选项反映活动 2,3 当我在活动 2 我的菜单选项反映 1,3 等等,但在每个活动中一个菜单,您必须将代码放入其中,当您在活动之间进行更改时,您将始终拥有一个菜单.....它适用于我我不知道它是否是最好的方式,但它适用于我

于 2013-08-16T17:32:53.883 回答
-1

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

    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;
}

是我使用的...如果这有帮助,也许可以查看我的问题“在片段中的光标处附加.text”....我非常渴望帮助

于 2013-08-09T17:35:27.797 回答