Это сложный вопрос.Как установить метод, только если установлен флажок?
У меня есть два флажка, и я хотел бы прикрепить текст к строке в зависимости от того, нажаты ли эти флажки. E.G. если щелкнуть checkbox1, он добавит «A» к строке «result» , если щелкнуть по кнопке checkbox2, добавляет «B» к строке «result»
Я пробовал несколько разных методов и, по-видимому, ближайший из них - onClick.
final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox);
checkBox1.setChecked(false);
checkBox1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (checkBox1.isChecked()) {
builder.append(value1).append("\n");
Toast.makeText(MainActivity.this, "item selected", Toast.LENGTH_LONG).show();
}
else {
builder.append("");
}
}
});
final CheckBox checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
checkBox2.setChecked(false);
checkBox2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (checkBox2.isChecked()) {
builder.append(value2).append("\n");
Toast.makeText(MainActivity.this, "item selected", Toast.LENGTH_LONG).show();
} else {
builder.append("");
}
}
});
Я пробовал также onChangedState или что-то в этом роде, но это не работает для моей цели.
После обычного поведения, если я нажму один раз, я добавлю «А», а если дважды щелкнуть, добавьте «». Тем не менее, если я нажму три раза, я добавлю «A» «A», а не только «A».
Любая идея о том, как устранить эту неприятность? вероятно, какое-то истинное/ложное утверждение?
я хотя еще builder.setLength (builder.length() - 5); BUT (1) Что делать, если я не нажимаю дважды на том же контрольном? например Я нажимаю на checkbox1, затем на checkbox2, затем снова нахожу флажок checkbox1, чтобы отключить его: удалит ли append, сгенерированный Checkbox1 или Checkbox2? (2) Что делать, если длина переменной? Я не могу стереть -5, если длина равна 6 или выше – MDR