我想询问如何将对话框中某些项目的状态设置为预先检查。我必须遵循以下代码:
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;
}
我正确地获得了对话框,所有内容都已设置并准备好由用户进行检查,但是当用户调用对话框时,我希望对话框中的某些项目预先检查第一次。
答案 0 :(得分:2)
帽子是setMultiChoiceItems
上的第二个参数,但你基本上是在传递最近创建的一个布尔值数组(它们都是false
)。
在致电true
之前,请尝试将您希望预先检查的位置设为setMultiChoiceItems
。
您可以重复使用已经拥有的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;
}