禁用 Android 复选框侦听器

Disable Android checkbox listener

我正在开发一个数据收集应用程序,该应用程序在处于活动状态时会锁定屏幕以防止错误的用户交互。我想在此状态下“锁定”复选框,以防止用户选中或取消选中复选框。虽然屏幕上的其他按钮在此状态下仍会“单击”,但(侦听器处于活动状态)当 boolean bLockedScreen == true 时,它​​们的事件不会执行。我希望我的布尔标志 (bLockedScreen) 在 true 时禁用复选框侦听器。

执行此操作的最佳方法是什么? TIA

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
            ...
            ckbxVerbose = (CheckBox) v.findViewById(R.id.ckbxVerbose);
            return v;
}
public void verbose(){
    if(ckbxVerbose.isChecked()){
        //do something
}

更新:通过放置

解决了这个问题
 ckbxVerbose.setEnabled(false);

在设置布尔标志以禁用屏幕小部件的方法中。对于收集数据时处于非活动状态的其他按钮,也可能会执行此操作。谢谢阿里王子的回答。

您可以通过调用 setEnabled 并将其值设置为 falsetrue 来禁用或启用 CheckBox。这是一个涉及 2 CheckBoxes 的最小工作示例,如果选中第一个 CheckBox,则禁用第二个,否则启用它:

ckbxVerbose.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                    if ( isChecked ) {
                        ckbxVerbose2.setEnabled(false);
                    } else {
                        ckbxVerbose2.setEnabled(true);
                    }
                }
            }
        );

另一个例子可以是:

CharSequence str = txt.getText();
        if ( str.equals("Checked") ) {
            ckbxVerbose2.setEnabled(false);
        } else {
            ckbxVerbose2.setEnabled(true);
        }