Например, у меня есть 5 флажков (cb1 - cb5). cb1 превосходит другие, что означает, что он может быть проверен только при проверке всех остальных 4. И если я проверю cb1, все остальные 4 должны автоматически пройти проверку. Это мой текущий код Java (этот код в методе OnCreate):Как мне заставить CheckBox что-то делать, когда оно проверено?
final CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox1);
final CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
final CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
final CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
final CheckBox cb5 = (CheckBox) findViewById(R.id.checkBox5);
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (cb1.isChecked())
{
cb2.isChecked();
cb3.isChecked();
cb4.isChecked();
cb5.isChecked();
}
}
});
Я начинающий так что код может быть совершенно неправильно, или есть только небольшая ошибка, и я не могу видеть это. В любом случае, я был бы признателен за помощь. Кроме того, если мой способ слишком сложный, и есть более простой способ, сообщите мне, пожалуйста.
Используйте 'setSelected (истина)', если вы хотите, чтобы установить флажок. ('isChecked()' только проверяет, установлен ли флажок, он не выбирает/не отменяет его). – Maroun
Вы также должны установитьOnCheckedChangeListener для всех своих флажков, а не только cb1. Кроме того, вы должны просто отключить cb1, пока не будут отмечены все остальные флажки. Это сделает пользователя более понятным, что происходит. –
@Maroun Похоже, он просто использует флажок от java.awt, а не от swing, поэтому команда setState (true) - но имейте в виду, что установка такого состояния не генерирует флажок выбранного события –