【问题标题】:onCreateOptionsMenu is not doing anything for meonCreateOptionsMenu 没有为我做任何事情
【发布时间】:2011-09-09 19:06:16
【问题描述】:

我完全不知道为什么会这样。选项菜单工作正常,但现在它不再工作了。

当我点击菜单按钮时,菜单打开,我点击它,什么也没有。当我执行 LogCat 时,它确实注册了 MenuItem...我真的要扯头发了,我不明白为什么会这样。

06-06 22:19:07.899: DEBUG/MYTAG(23124):愚蠢的答题器 id=保存设置项 id=2133000192 id2=2133065728

下面是代码和xml

@Override
    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.settings, menu);
        Log.d("MYTAG", "Clicked saved1");
        return super.onCreateOptionsMenu(menu);
    }



@Override
    public boolean onOptionsItemSelected(MenuItem item){
        Log.d("MYTAG", "Stupid clicker id="+item+" item id="+item.getItemId()+" id2="+R.mainmenuSettings.save1);
        switch(item.getItemId()){
        case R.mainmenuSettings.save1:
            Log.d("MYTAG", "Stupid clicker");
            break;
        }
        return super.onOptionsItemSelected(item);
    }


<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item   android:id="@+mainmenuSettings/save1"
            android:title="save settings"/>
</menu>

【问题讨论】:

  • 此活动是否是 tabhost 的子活动...?
  • 为了效果!!我删除了旧的 settings.xml 并创建了一个新的但名称不同的“mysettings.xml”,我什至将 id 更改为 mysettings。现在它起作用了!我已经在旧的 XML 文件中尝试过,但没有结果...我只想知道为什么!?
  • @Dinesh,两者都不是(我认为)这一切都在一个活动/课程中。请多多包涵,我学习java和android已经两个月了。

标签: android menu options


【解决方案1】:

您的菜单 XML 中有错误。 “id”属性需要以“@+id/”开头,所以这需要是“@+id/mainmenuSettingsSave1”或类似的东西。此外,您需要在代码中将其引用为 R.id.mainmenuSettingsSave1:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/mainmenuSettingsSave1"
          android:title="save settings"/>
</menu>

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.settings, menu);
    Log.d("MYTAG", "Clicked saved1");
    return super.onCreateOptionsMenu(menu);
}



@Override
public boolean onOptionsItemSelected(MenuItem item){
    Log.d("MYTAG", "Stupid clicker id="+item+" item id="+item.getItemId()+" id2="+R.id.mainmenuSettingsSave1);
    switch(item.getItemId()){
    case R.id.mainmenuSettingsSave1:
        Log.d("MYTAG", "Stupid clicker");
        break;
    }
    return super.onOptionsItemSelected(item);
}

【讨论】:

猜你喜欢
  • 2012-09-07
  • 2016-10-02
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多