我正在尝试在选中(或未选中)复选框时启用/禁用搜索栏。

我正在使用它来创建和引用:

CheckBox checkBoxProva = (CheckBox) findViewById(R.id.checkbox_prova);
boolean varCheckBoxProva = checkBoxProva.isChecked();


这很简单,如果要禁用/启用视图:

if (!varCheckBoxProva) {
    seekBarProva.setEnabled(false);
}


所有这些都在onCreate内部。

当应用启动时,搜索栏被禁用(因此,如果可行),但是如果我选中CheckBox,它不会变为启用状态。

编辑:我已经成功感谢@rohan bhatia的回复。

最佳答案

您需要一个侦听器来通知何时选中或取消选中一个复选框。

checkBoxProva.setOnCheckedChangeListener(new new CompoundButton.OnCheckedChangeListener() {

       @Override
       public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {

            seekBarProva.setEnabled(isChecked);

       }
   }
);


因此,每当您单击复选框时,将执行onCheckedChanged()方法。您仍然需要在onCreate中指定此方法-

seekBarProva.setEnabled(checkBoxProva.isChecked());


由于onCheckedChanged()仅侦听已检查状态的更改,因此要指定初始阶段,您也将需要上面的行。

10-01 02:50