我正在使用菜单开发应用程序。 该菜单包含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。为什么呢?
答案 0 :(得分:4)
这是错误的
[
{ _id : ObjectId("db_created") , u_id : 8 , name : "H" , comment : [1,2] },
{ _id : ObjectId("db_created") , u_id : 7 , name : "G" , comment : [] },
{ _id : ObjectId("db_created") , u_id : 6 , name : "F" , comment : [1,2] },
{ _id : ObjectId("xxxxxx") , u_id : 5 , name : "E" , comment : [1,2,3] },
{ _id : ObjectId("yyyyyy") , u_id : 4 , name : "DD" , comment : [1] },
{ _id : ObjectId("zzzzzz") , u_id : 3 , name : "C" , comment : [1,2] },
{ _id : ObjectId("aaaaaa") , u_id : 2 , name : "B" , comment : [1,2] },
{ _id : ObjectId("bbbbbb") , u_id : 1 , name : "A" , comment : [1] },
]
试试这个
<item android:id="+@id/action_maps"
android:title="@string/action_map"
app:showAsAction="never"/>
问题是 + 符号应该在 @ 之后
答案 1 :(得分:0)
我删除了android:orderInCategory =“ 100”,并再次获得了ID
答案 2 :(得分:-1)
你不小心换了#34; +&#34;和&#34; @&#34;在菜单的action_map项目中