Java Android选项菜单不工作?
我的项目中只有一项活动。我创建了一个包含3项的选项菜单。 我不知道为什么,但这对我不起作用。每次选择项目时,我都会获得项目ID 0 res/menu/m1.xml:Java Android选项菜单不工作?,java,android,callback,android-optionsmenu,Java,Android,Callback,Android Optionsmenu,我的项目中只有一项活动。我创建了一个包含3项的选项菜单。 我不知道为什么,但这对我不起作用。每次选择项目时,我都会获得项目ID 0 res/menu/m1.xml: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/ITEM1" andr
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/ITEM1"
android:title="one">
</item>
<item android:id="@+id/ITEM2"
android:title="two">
</item>
<item android:id="@+id/ITEM3"
android:title="three">
</item>
</menu>
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("1");
menu.add("2");
menu.add("3");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT);
break;
case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT);
break;
case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT);
break;
default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT);
}
Log.v("DEMO", "Item ID: "+item.getItemId());
return super.onOptionsItemSelected(item);
}
}
当我选择一个项目时,我在日志中总是得到0。为什么?用下面的代码替换onCreateOptionsMenu()方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.m1, menu);
return true;
}
用以下代码替换onCreateOptionsMenu()方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.m1, menu);
return true;
}
用此代码替换您的代码
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.m1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT);
break;
case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT);
break;
case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT);
break;
default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT);
}
Log.v("DEMO", "Item ID: "+item.getItemId());
return super.onOptionsItemSelected(item);
}
用此代码替换您的代码
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.m1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.ITEM01: Toast.makeText(this, "1",Toast.LENGTH_SHORT);
break;
case R.id.ITEM02: Toast.makeText(this, "2",Toast.LENGTH_SHORT);
break;
case R.id.ITEM03: Toast.makeText(this, "3",Toast.LENGTH_SHORT);
break;
default: Toast.makeText(this, "-----",Toast.LENGTH_SHORT);
}
Log.v("DEMO", "Item ID: "+item.getItemId());
return super.onOptionsItemSelected(item);
}
您需要将菜单充气到视图中
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
为此您需要将菜单充气到视图中
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
这是什么?@momo:你得到答案了吗?@momo:你得到答案了吗?