请问如何设置Dialog复选框中某些项目的状态为预选。我必须遵循以下代码:
String[] typeOfTransport;
typeOfTransport = new String[modes.length];
final boolean[] itemsChecked = new boolean[modes.length];
for (int i = 0; i < modes.length; i++)
{
typeOfTransport[i] = modes[i].Name;
}
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
dialogBuilder.setTitle("Select your transport:");
dialogBuilder.setMultiChoiceItems(typeOfTransport, itemsChecked, new DialogInterface.OnMultiChoiceClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked)
{
itemsChecked[which] = isChecked = true;
}
});
dialogBuilder.setPositiveButton("Set", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
String selectetdVal = " ";
for (int i = 0; i < modes[0].Name.length(); i++)
{
if (itemsChecked[i])
{
selectetdVal = selectetdVal + modes[i].Name+ " ";
itemsChecked[i]=false;
}
}
Toast.makeText(MainWindow.this, selectetdVal,Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
return true;
}
我正确地得到了对话框,一切都已设置好并准备好供用户检查,但我希望在用户调用对话框时预先检查对话框中的某些项目第一次。
最佳答案
这就是 setMultiChoiceItems
的第二个参数所做的,但您基本上传递的是最近创建的 bool 值数组(它们都是 false
)。
在调用 setMultiChoiceItems
之前尝试将您想要预检查 的位置设置为 true
。
您可以重用您已经必须执行的 for
循环:
final boolean[] itemsChecked = new boolean[modes.length];
for (int i = 0; i < modes.length; i++)
{
typeOfTransport[i] = modes[i].Name;
itemsChecked[i] = modes[i].Selected;
}
关于android - 如何设置要在对话框中预先检查的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21909386/