禁用 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
并将其值设置为 false
或 true
来禁用或启用 CheckBox。这是一个涉及 2 CheckBox
es 的最小工作示例,如果选中第一个 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);
}
我正在开发一个数据收集应用程序,该应用程序在处于活动状态时会锁定屏幕以防止错误的用户交互。我想在此状态下“锁定”复选框,以防止用户选中或取消选中复选框。虽然屏幕上的其他按钮在此状态下仍会“单击”,但(侦听器处于活动状态)当 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
并将其值设置为 false
或 true
来禁用或启用 CheckBox。这是一个涉及 2 CheckBox
es 的最小工作示例,如果选中第一个 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);
}