首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小菜单问题

小菜单问题
EN

Stack Overflow用户
提问于 2011-04-09 00:05:04
回答 1查看 369关注 0票数 0

我正在尝试在我的程序中实现this的“标签”风格,我有它的工作,但菜单不工作在我的不同活动,因为他们不像正常的标签显示。要获取菜单,我必须将其放入创建标签的活动中,但当我点击手机上的菜单按钮,然后在没有选择菜单项的情况下回击时,问题就来了。下一次我点击菜单时,即使我在不同的活动中,它也会显示上一次我所在的菜单。

例如,活动"A“与菜单"MA”被选中,然后我使用菜单"MB“转到活动"B”,然后点击菜单,菜单"MA“将会显示,而不是应该显示的"MB”。

这是我的菜单声明

代码语言:javascript
复制
@Override
public boolean onCreateOptionsMenu(Menu menu){
    super.onCreateOptionsMenu(menu);
    Log.d("onTabChanged", "selectedTab: " + String.valueOf(selectedTab));

    switch(selectedTab){
    case 0:
        break;
    case 1:
        menu.add(1,0,0, "Item 1 ").setIcon(Main.resizeImage(this,R.drawable.ic_menu_preferences,100,100));
        menu.add(1,1,0, "Item 2").setIcon(Main.resizeImage(this, R.drawable.ic_menu_invite,100,100));
        return true;
    case 2:
        menu.add(1,2,0,"Item 3").setIcon(Main.resizeImage(this,R.drawable.ic_menu_preferences,100,100));        
        return true;
    case 3:
        menu.add(1,3,0,"Item 4").setIcon(Main.resizeImage(this,R.drawable.ic_menu_preferences,100,100));            
        menu.add(1,4,0, "Item 5").setIcon(Main.resizeImage(this, R.drawable.ic_menu_invite,100,100));
        return true;
    default:
        return false;
    }
    return false;
}

菜单选择基于所选的选项卡号。

我不能这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-09 00:10:17

将菜单创建移至onPrepareOptionsMenu procedure。对于当前的活动,onCreateOptionsMenu只被调用一次,但是onPrepareOptionsMenu -每次都是在菜单将要显示之前。

代码语言:javascript
复制
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    Log.d("onTabChanged", "selectedTab: " + String.valueOf(selectedTab));

    menu.clear();  // Do not forget to clear previous menu
    switch(selectedTab){
    case 0:
        break;
    case 1:
        menu.add(1,0,0, "Item 1 ").setIcon(Main.resizeImage(this,R.drawable.ic_menu_preferences,100,100));
        menu.add(1,1,0, "Item 2").setIcon(Main.resizeImage(this, R.drawable.ic_menu_invite,100,100));
        return true;
    case 2:
        menu.add(1,2,0,"Item 3").setIcon(Main.resizeImage(this,R.drawable.ic_menu_preferences,100,100));        
        return true;
    case 3:
        menu.add(1,3,0,"Item 4").setIcon(Main.resizeImage(this,R.drawable.ic_menu_preferences,100,100));            
        menu.add(1,4,0, "Item 5").setIcon(Main.resizeImage(this, R.drawable.ic_menu_invite,100,100));
        return true;
    default:
        return false;
    }
    return false;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5597794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档