我已获得以下代码:
final AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this);
builder.setTitle(R.string.str_dbox_remove_plant_title);
final HashMap<String, Integer> stuff = myCollection.getListOfStuffWithLocation();
final CharSequence[] items = stuff.keySet().toArray(new CharSequence[stuff.size()]);
final List<Integer> indexesOfSelectedStuff = new ArrayList<Integer>();
builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked)
indexesOfSelectedStuff.add(stuff.get(items[which].toString()));
else if (indexesOfSelectedStuff.contains(stuff.get(items[which].toString())))
indexesOfSelectedStuff.remove(which);
}
});
builder.setPositiveButton(R.string.str_dbox_remove_stuff_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
for (int i = 0; i < indexesOfSelectedStuff.size(); i++) {
myCollection.removeStuff(i);
}
}
});
builder.setNegativeButton(R.string.str_dbox_remove_stuff_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setCancelable(false); // so as to prevent the back button from closing the dialog box
final AlertDialog alert = builder.create();
alert.setCanceledOnTouchOutside(false);
alert.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false); // by default, disable OK button
alert.show();
我有一个AlertDialog
有一些CheckBox
个es,我想禁用PositiveButton
,只要没有CheckBox
个。{ / p>
我有一个名为List
的{{1}},你可以说,在某种程度上,使用indexesOfSelectedStuff
方法会让我知道选择了多少size()
。但是,我不确定在何处放置它或如何引用构建器中的CheckBoxes
。我想将它放在PositiveButton
方法(如onClick
中定义)上,如下所示:
OnMultipleChoiceClickListener()
我知道我很有可能不会在那里插入它。而且我必须在创建@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked)
indexesOfSelectedStuff.add(stuff.get(items[which].toString()));
else if (indexesOfSelectedStuff.contains(stuff.get(items[which].toString())))
indexesOfSelectedStuff.remove(which);
if (indexesOfSelectedStuff.size() == 0) {
// disable button
// but problem is, I don't know how to reference the POSITIVE_BUTTON
}
else {
// enable button
}
}
后进行检查。但如果是这样的话,你会建议我使用什么?我在想AlertDialog
但是哪个?我应该怎么做呢?
答案 0 :(得分:1)
为此,您需要创建自定义对话框。要知道如何检查此链接。 Click Here
你可以试试这个。
创建一个布尔值为true。 如果勾选复选框,则设置布尔值true false。
然后,只要您创建警报对话框,只需检查布尔值是否设置为false或true。如果为true,则创建“是”按钮,否则不要创建“是”按钮。 现在问题是检查按钮在alertdialog里面,如果是的话我是对的。
每次单击一个复选按钮,您都可以关闭“警报”对话框并再次打开它,并勾选勾选的复选框,并且不显示“是”按钮。这是使用引用的按钮来设置禁用。或者以技术术语z
当然这是滞后等等,但这就是我所能做的。遗憾