AlertDialog.Builder setMultiChoiceItems

时间:2020-10-17 12:28:43

标签: android android-alertdialog

嗨,其他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();

这是该应用的两个屏幕截图:

Screenshot 1

Screenshot 2

0 个答案:

没有答案