Android 无法识别我的 ID
Android doesn't recognize my id
我正在开发一个带有菜单的应用程序。
菜单包含 2 个项目,一个地图和一个设置 属性
这是菜单语法:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="+@id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
</menu>
我使用 MainActivity 中的 onOptionsItemSelected(MenuItem item) 方法来处理这个问题:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent intent = new Intent(this, PreferenceActivity.class);
startActivity(intent);
return true;
}
if(id == R.id.action_maps){
openPreferredLocationMap();
return true;
}
return super.onOptionsItemSelected(item);
}
现在的问题是Android在方法中识别了action_settings但是他不识别action_maps。为什么?
这是错误的
<item android:id="+@id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
试试这个
<item android:id="@+id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
问题是 + 符号应该在 @ 之后而不是在
之前
您不小心在菜单的 action_map 项中切换了“+”和“@”
我删除了 android:orderInCategory="100" 并且 Id 再次被识别
我正在开发一个带有菜单的应用程序。 菜单包含 2 个项目,一个地图和一个设置 属性 这是菜单语法:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="+@id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
</menu>
我使用 MainActivity 中的 onOptionsItemSelected(MenuItem item) 方法来处理这个问题:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent intent = new Intent(this, PreferenceActivity.class);
startActivity(intent);
return true;
}
if(id == R.id.action_maps){
openPreferredLocationMap();
return true;
}
return super.onOptionsItemSelected(item);
}
现在的问题是Android在方法中识别了action_settings但是他不识别action_maps。为什么?
这是错误的
<item android:id="+@id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
试试这个
<item android:id="@+id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
问题是 + 符号应该在 @ 之后而不是在
之前您不小心在菜单的 action_map 项中切换了“+”和“@”
我删除了 android:orderInCategory="100" 并且 Id 再次被识别