我有这样定义的AlertDialog:
final CharSequence[] items = { "Red", "Green", "Blue", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" };
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// Set items uncheckable
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
AlertDialog alert = builder.create();
alert.show();
第一个问题
是否可以将某些项目标记为不可检查? 虽然我正在展示各种项目,但我知道用户知道这些项目存在但其中一些是无法检查的。
第二个问题
如果有办法完成我的第一个问题,是否可以将那些不可检查的项目变为灰色?
谢谢,
favolas
答案 0 :(得分:0)
可能是这样的:
(AlertDialog)builder.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
这是另一种方式:
Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setEnabled(false)
看看是否有效。 还要在builder.create();
before alert.show()
编辑:对于列表项,我认为您可以使用getListView()来访问可检查选项,并使用setEnabled(false)
答案 1 :(得分:0)
您必须选择一个特定的子项,然后将其禁用:
ListView list = ((AlertDialog) dialog).getListView();
list.getChildAt(item).setEnabled(false);