我正在使用Android Studio,我想知道是否有可能在"onOptionsItemSelected"
方法中使用超过2项?如果是这样的话?提前谢谢。
顺便说一下,我试过添加另一个出现问题的案例
case R.id.DropDB:{
AlertDialog.Builder builder4 = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
builder4.setTitle("DeleteMassage")
builder4.setPositiveButton("set", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
msgsDB.DeleteTable();
}
});
return true;
答案 0 :(得分:0)
是的,您可以根据需要添加任意数量的项目。 你必须做几件事。首先,您必须创建一个将放在文件夹中的xml:res / menu,例如,您可以将其命名为myMenu.xml
在这个xml中,你用所有你的项目来创造菜单
<强> myMenu.xml 强>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_1" android:title="@string/action_1" android:icon="@drawable/action_1" android:showAsAction="ifRoom" />
<item android:id="@+id/action_2" android:title="@string/action_2" android:orderInCategory="100" android:showAsAction="never" />
<item android:id="@+id/action_3" android:title="@string/action_3" android:orderInCategory="100" android:showAsAction="never" />
<item android:id="@+id/action_4" android:title="@string/action_4" android:orderInCategory="100" android:showAsAction="never" />
</menu>
在主要活动中,您需要指定菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.myMenu, menu);
return true;
}
然后您可以实施所需的所有案例,以便为您提供行动:
@Override
public boolean onOptionsItemSelected (MenuItem item) {
switch(item.getItemId())
{
case R.id.action_1:
//You code for the action1
return true;
case R.id.action_2:
//You code for the action2
return true;
case R.id.action_3:
//You code for the action3
return true;
case R.id.action_4:
//You code for the action4
return true;
}
return super.onOptionsItemSelected(item);
}