嗨,其他Android开发人员。
我对AlertDialog.Build类的setMultiChoiceItems方法有一个奇怪的问题。当我将CharSequence数组和boolean数组(所有项目均设置为true)传递给该方法时,结果对话框将显示所有选定项目,但位置11(基于10的位置为零),基于22(基于21的位置为零)上的项目除外。 。,这意味着它以某种方式忽略了每10个项目后布尔数组所指示的检查状态!
这是示例代码:
CharSequence[] items = {
"Item01", "Item02", "Item03", "Item04", "Item05",
"Item06", "Item07", "Item08", "Item09", "Item10",
"Item11", "Item12", "Item13", "Item14", "Item15",
"Item16", "Item17", "Item18", "Item19", "Item20",
"Item21", "Item22", "Item23", "Item24", "Item25",
"Item26", "Item27", "Item28", "Item29", "Item30"};
boolean[] flags = {
true, true, true, true, true,
true, true, true, true, true,
true, true, true, true, true,
true, true, true, true, true,
true, true, true, true, true,
true, true, true, true, true};
DialogInterface.OnMultiChoiceClickListener listener = new DialogInterface.OnMultiChoiceClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b)
{
}
};
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
// Set the dialog title
dialog.setTitle("Title")
.setMultiChoiceItems(
items,
flags,
listener)
// Set the action buttons
.setPositiveButton(
"Apply",
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
}
})
.setNegativeButton(
"Cancel",
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
dialog.dismiss();
}
});
dialog.show();
这是该应用的两个屏幕截图: