我不确定我在这里做错了什么但是由于某种原因,即使我在menu / main.xml中定义了Line R.id.action_search仍未解决
这是MainActivity.java
package com.example.myfirstapp;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
//... other methods above
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
//handle each number from the item in a case block
switch (item.getItemId())
{
case R.id.action_search: //error on this R.id call. Unresolved
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
以下是main.xml文件中的代码:
<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:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>
我做错了什么吗?有没有办法让我定义我的身份?
答案 0 :(得分:0)
您似乎没有导入项目的R.java。试试那个
答案 1 :(得分:0)
在您的代码中添加此内容。通常,您应该将菜单相关项目保存在res文件夹下的菜单中。
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
// If it in menu folder then use R.menu.main and if it in layout then use R.menu.main
return true;
}
答案 2 :(得分:0)
每当生成的R类没有生成时,它表明由于XML资源的某些解析问题而产生它的问题。检查IDE中的错误控制台,找出具体错误。
常见问题是:
strings.xml
中未转义的字符,例如you're
而不是you\'re
layout_width
或layout_height
个标签答案 3 :(得分:0)
我的SDK让我将switch / case结构转换为if / else if / else。在那之后它对我起作用真是奇怪。
int itemId = item.getItemId();
if (itemId == R.id.action_search) {
openSearch();
return true;
} else if (itemId == R.id.action_settings) {
openSettings();
return true;
} else {
return super.onOptionsItemSelected(item);
}