【问题标题】:How to set checkbox checked and disabled如何设置复选框选中和禁用
【发布时间】:2016-03-29 14:36:52
【问题描述】:

我有这个代码来显示下载的语言列表:

public void onCreateDialog(ArrayList<String>fullLangArray, final ArrayList<String>codeLangArray) {

    final String[] items = fullLangArray.toArray(new String[fullLangArray.size()]);

    final ArrayList mSelectedItems = new ArrayList();

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

    // Set the dialog title
    builder.setTitle("Updates...")
            .setMultiChoiceItems(items, null,
                    new DialogInterface.OnMultiChoiceClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int indexSelected,
                                            boolean isChecked) {
                            if (isChecked) {
                                  mSelectedItems.add(Utils.SERVER_ADDRESS + "/" + codeLangArray.get(indexSelected) + ".zip");
                            } else if (mSelectedItems.contains(indexSelected)) {
                                  mSelectedItems.remove(Integer.valueOf(indexSelected));
                            }
                        }
                    })

            .setPositiveButton("Download", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {

                    DownloadTask downloadTask = new DownloadTask(MainActivity.this);
                    downloadTask.execute(mSelectedItems.toString());

                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {

                }
            });

    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

我想在加载 AlertDialog 时选中复选框中的一项并像照片中一样“禁用”(选项 3)。

你能帮我怎么做吗?

【问题讨论】:

  • 只是调用 checkBox.setChecked(true/false) 和 checkbox.setEnabled(true/false).....还是我误解了问题?
  • 你可以使用 your_checkbox.setChecked(true);your_checkbox.setEnabled(false);
  • @Opiatefuchs,已编辑描述。
  • 所以你只希望框有点透明而不是文本?
  • @Opiatefuchs,透明与否无关紧要,用户无法取消选中该项目。始终应检查该项目。

标签: java android android-alertdialog android-checkbox


【解决方案1】:

您可以使用以布尔值作为参数的setChecked() 方法来选中复选框。

例子:

   option1.setChecked(true);

并且还使用取消选中它

   option2.setChecked(false);

如果您想将其设置为选中和禁用,您可以使用 setEnabled(),它以布尔值作为参数。

示例。

option3.setChecked(true);
option3.setEnabled(false); 

这将禁用您的复选框,甚至选中它。我希望这可以帮到你。谢谢。

【讨论】:

  • 在 multichoiceItems onclick() 中。如果这对您有帮助,请不要忘记打勾并投票。谢谢你
【解决方案2】:

用于设置不透明度

mSelectedItems.getBackground().setAlpha(128);

INT 的范围从 0(完全透明)到 255(完全不透明)。

对于 setChecked 项目

mSelectedItems.setChecked(true);

禁用检查

mSelectedItems.setEnabled(false)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 2010-11-15
    • 2013-01-19
    • 1970-01-01
    • 2020-06-25
    • 2012-05-21
    • 2014-07-11
    • 1970-01-01
    相关资源
    最近更新 更多