Android 如何在AlertDialog中设置单选项?
我无法在AlertDialog中设置单选列表或多选列表 我尝试了下面的例子,但是我只得到了一个带有标题、Ok和Cancel按钮的对话框,没有列表,也没有消息(我设置了!) 代码如下:Android 如何在AlertDialog中设置单选项?,android,android-alertdialog,Android,Android Alertdialog,我无法在AlertDialog中设置单选列表或多选列表 我尝试了下面的例子,但是我只得到了一个带有标题、Ok和Cancel按钮的对话框,没有列表,也没有消息(我设置了!) 代码如下: protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_DELETE_CITY: CharSequence[] array = {"Red", "Blue", "Yellow"};
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DELETE_CITY:
CharSequence[] array = {"Red", "Blue", "Yellow"};
return new AlertDialog.Builder(ShowPypData.this)
.setTitle(R.string.city_actions_delete_label)
.setMessage(R.string.city_actions_delete_select_label)
.setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
default:
return null;
}
}
奇怪的是,如果我对setSingleChoiceItems部分进行注释,我可以看到对话框上的消息。似乎
按钮
,消息
和多选项
是相互排斥的。尝试注释掉setMessage()
,setPositiveButton()
和setNegativeButton()
。我自己没有检查。这段代码对我有用
final CharSequence[] charSequence = new CharSequence[] {"As Guest","I have account here"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Buy Now")
//.setMessage("You can buy our products without registration too. Enjoy the shopping")
.setSingleChoiceItems(charSequence, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
utility.toast(" "+charSequence);
}
})
.setPositiveButton("Go", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show()
您完全正确,setMessage、setSingleChoiceItems和setMultiChoiceItems都是互斥的。相反,按钮可用于各种AlertDialog。谢谢你!从“因为列表出现在对话框的内容区域中,所以对话框不能同时显示消息和列表,您应该使用setTitle()为对话框设置标题”,这可能会有所帮助