Android 复选框在更改前侦听单击

Mic*_*rne 3 checkbox android

我有一个要求,其中显示特定设置的复选框。当用户点击复选框时,我想显示一个警报对话框。只有当用户点击确认按钮(或类似按钮)时,复选框才会更改。

我的观点是OnCheckedChanged监听器只在复选框改变状态后触发,而我想在它改变状态之前监听点击。

Rah*_*ari 5

您可以使用onTouchListener和拦截ACTION_DOWN事件来显示警报。在用户选择上以编程方式更改您复选框的选中状态。

例子:

checkbox.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN){

            //show alert
            return true; //this will prevent checkbox from changing state
        }
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

然后调用checkbox.setChecked(true);checkbox.setChecked(false);作为用户选择是或否。`

  • IMO 你应该监听`ACTION_UP`,以防用户点击,然后在抬起之前将手指拖离复选框。大多数系统组件以这种方式工作。 (3认同)