[英]Trying to open a Dialog Menu with an Options Menu Item
我正在尝试打开一个带有列表的警报对话框,供用户选择某些选项,但是将从选项菜单项中打开该对话框。 我已经包含了选项项和对话框菜单的代码。
public void OnOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case SECTION:
showDialogMenu();
new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
showDialogMenu();
Log.d("Dialog used.","here");
}
}; break;
}
}
public void showDialogMenu(){
Log.d("showDialogMenu()", "Method was called.");
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.dialogueTitle);
builder.setPositiveButton("Melee", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=0;
whichImage(num);
}
});
builder.setPositiveButton("Pistols", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=27;
whichImage(num);
}
});
builder.setPositiveButton("Shotguns", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=38;
whichImage(num);
}
});
builder.setPositiveButton("Rifles", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=43;
whichImage(num);
}
});
builder.setPositiveButton("Sub-Machine Guns", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=58;
whichImage(num);
}
});
builder.setPositiveButton("Light Machine Guns", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=68;
whichImage(num);
}
});
builder.setPositiveButton("Sniper Rifles", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int item) {
num=72;
whichImage(num);
}
});
builder.show();
}
我确保对话框具有show()方法,我认为以前是问题所在,但是单击菜单项后,什么也没出现。 任何帮助将不胜感激,谢谢。
容易的家伙...没人认为你很愚蠢。 我不知道什么是SECTION
,但是您应该将其更改为您在菜单xml中输入的ID
<item android:id="MyItem"
然后在你的onOptionsItemSelected()
public void OnOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.MyItem:
showDialogMenu();
break;
将showDialog()
方法移到此处之外,以便可以继续使用。
public void showDialogMenu(){
Log.d("Dialog used.","here");
}
在这里使用switch/case
是很好的,因为您可能会在某个时候添加更多项目
那应该可以解决您当前的问题。 但是您将需要使用“ MultiChoice对话框”来检查您正在做什么
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.