Android:如何检测何时触摸已禁用的复选框?

时间:2014-04-17 17:58:11

标签: android listview checkbox android-arrayadapter

我要求有时ListView中的复选框不可勾选。我使用setEnabled(false)

当用户仍然点击已停用的Checkbox时,是否还会触发一个Toast消息?

我还使用自定义ArrayAdapter覆盖getView方法。

2 个答案:

答案 0 :(得分:0)

你不能。他们称之为禁用的原因。

您可以使用相同的资源创建自定义复选框,但我想这只是浪费时间。用户将知道该复选框已禁用,因为禁用的小部件以30%alpha显示。

答案 1 :(得分:0)

您可以:)使用扩展CheckBox并覆盖onTouchEvent的帮助程序类,类似于:

public class DisabledTouchableCheckbox extends CheckBox {

    public DisabledTouchableCheckBox(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if ((!isEnabled()) && (event.getAction()==MotionEvent.ACTION_DOWN)) 
            showToast();
        return super.onTouchEvent(event);
    }

    private void showToast() {
            ... show your toast
    }

}

然后在您的XML中,您必须更改<CheckBox>的{​​{1}}