textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked()){
// do your work
}
}
});
Обновление
- У вас есть несколько флажков
- Если флажок установлен, тогда кнопка должна быть включена
Флажок следует слушать в режиме реального времени.
ArrayList<CheckBox> checkBoxes = new ArrayList<>();
checkBoxes.add(checkBox1);
checkBoxes.add(checkBox2); // add all your checkbox
for (CheckBox checkBox : checkBoxes) {
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// one of the checkbox is checked so enable button
textView.setEnabled(true);
} else {
// check if any of check box is checked
boolean isAnyChecked = false;
for (CheckBox box : checkBoxes) {
if (box.isChecked()) isAnyChecked = true;
}
textView.setEnabled(isAnyChecked);
}
}
});
}
Предложение
TextView по умолчанию не имеет волнового эффекта, используйте кнопку для хорошего пользовательского интерфейса,Проверьте этот ответ для выбора фона для включенных, отключенных, нажатых цветов.
Обновление 2
После изучения вашей проблемы вам на самом деле нужны RadioGroup
, которые позволяютчтобы проверить только один RadioButton
if (radioGroup.getCheckedRadioButtonId() == -1){
// no radio button is checked
}
else {
// one radio button is checked
}
Просто используйте RadioGroup в вашем XML.Вот пример.
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkedButton="@id/rbMale"
>
<RadioButton
android:id="@+id/rbMale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Male"
/>
<RadioButton
android:id="@+id/rbFemale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Female"
/>
</RadioGroup>
Вы также можете сделать radioGroup.getCheckedRadioButtonId() == R.id.rbMale
.
Обновление 3
Если вам нужен CheckBox как RadioButton, его очень просто
<RadioButton
style="@android:style/Widget.CompoundButton.CheckBox"
...
/>
Contrats !, вся ваша проблема решена :)