添加操作按钮:无法解析action_search或不是字段

时间:2014-05-06 14:50:14

标签: java android xml android-actionbar

所有人都注意:这可能是一个重复的问题,但是我找不到一个实际上帮助我的答案的问题所以我被迫做了这个。

我正在阅读有关如何制作Android应用程序的教程,我对此部分感到困惑:https://developer.android.com/training/basics/actionbar/adding-buttons.html

我坚持“回应动作按钮”,因为此代码中的action_search cannot be resolved or is not a field

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.action_search:
            openSearch();
            return true;
        case R.id.action_settings:
            openSettings();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
public void openSearch(){

}
public void openSettings(){

}

这一行

case R.id.action_search:

这阻碍了我的学习进度,我想知道如何解决它。对我而言,这似乎是Android上教学不好的教程,但它也可能是我的错。谢谢!

编辑:我的XML:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          android:showAsAction="ifRoom" />
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          android:showAsAction="never" />
</menu>

3 个答案:

答案 0 :(得分:4)

刚出现这个问题。教程没有提到这两个步骤。

如果您还没有,请执行以下操作:

  • 将名为ic_action_search.png的图像添加到4个不同的res / drawable文件夹
  • 在strings.xml中创建名为action_search的字符串

    <string name="action_search">Search</string>
    

main_activity_actions.xml无法找到这两件事,也没有将action_search添加到R.java文件中,但是没有给出有用的错误指向那个方向。

祝你好运!

编辑:还要确保你使用的是app:showAsAction。 As explained here.

答案 1 :(得分:1)

你正在使用什么IDE,如果它是NetBeans,删除包含R.id.action_search的行并构建你的项目,然后添加这一行,如果你使用的是Android Studion,我认为它需要工作,但是不要导入R从android,从你的项目主程序包导入它,我认为问题是在你定义你的活动的包中

答案 2 :(得分:1)

上述答案(dmarsi)100%正确。

Android开发者教程提到了以下内容:

http://developer.android.com/training/basics/actionbar/adding-buttons.html

图标属性需要图像的资源ID。 @ drawable /后面的名称必须是您在项目的res / drawable /目录中保存的位图图像的名称。例如,&#34; @ drawable / ic_action_search&#34;指的是ic_action_search.png。同样,title属性使用由项目的res / values /目录中的XML文件定义的字符串资源,如构建简单用户界面中所述。

我一直在努力解决同样的问题,直到我创建了字符串并为ic_action_search.png添加了一个随机的.png图像

祝教程其余部分好运!