在Android中禁用复选框

时间:2013-02-11 21:01:02

标签: android checkbox

我想创建一个提供三种不同状态的复选框:未选中,“半”选中并选中。为了与当前系统风格保持一致,我想使用灰色显示/禁用样式作为“半”检查状态,但我找不到任何定义此外观的drawable。如何在不真正禁用复选框的情况下禁用复选框?提前谢谢!

3 个答案:

答案 0 :(得分:5)

我花了很长时间试图完全按照你的要求做,并最终意识到一个相当简单的解决方案(至少对我而言)是有效的。我只是减少半检查状态的不透明度,并恢复完全检查状态的不透明度,而不是使用我自己的drawable和样式,或者尝试获取未记录的系统资源。例如,我执行以下操作:

if (half_checked)
    checkBox.setAlpha(0.4f);
else
    checkBox.setAlpha(1.0f);

这会产生如下结果: half-checked state

答案 1 :(得分:0)

由于复选框是一种按钮,因此适用于按钮的任何状态也适用于该按钮。

这里是关于android按钮的不同状态的讨论 How to grey out a button?

答案 2 :(得分:0)

当我需要类似的东西时,我有setBackground或setTextColor。您也可以使用setPressed,这样就可以检查(检查,取消选中和按下)三种状态。