Ich suche nach einer besseren Möglichkeit, meine CheckBoxen zu verstecken. Es gibt jeweils 2 und 5 Checkboxen (5 Antwort CheckBoxen und 5 Lösung CheckBoxen).Android - Verbergen von CheckBoxen, wenn der Wert leer ist
ich fülle die Antwort Arraylist dynamisch mit den Werten meiner Datenbank. Dann überprüfe ich für jeden Fall, ob die Liste einen Wert hat. Wenn es einen Wert gibt, erhält die CheckBox den Antworttext, wenn nicht der Text Null ist. Danach möchte ich alle Antwort-Checkboxen mit leeren Werten ausblenden. Dazu muss ich die zugehörigen CheckBoxen lösen. Dies ist die Art und Weise meiner Umsetzung:
if (question.getQuestiontype() == 2) {
cb_answer1.setText(answerList.size() >= 1 ? answerList.get(0).getAnswertext() : null);
cb_answer2.setText(answerList.size() >= 2 ? answerList.get(1).getAnswertext() : null);
cb_answer3.setText(answerList.size() >= 3 ? answerList.get(2).getAnswertext() : null);
cb_answer4.setText(answerList.size() >= 4 ? answerList.get(3).getAnswertext() : null);
cb_answer5.setText(answerList.size() >= 5 ? answerList.get(4).getAnswertext() : null);
if (cb_answer3.getText().toString().isEmpty()) {
cb_answer3.setVisibility(View.INVISIBLE);
cb_answer4.setVisibility(View.INVISIBLE);
cb_answer5.setVisibility(View.INVISIBLE);
cb_solution3.setVisibility(View.INVISIBLE);
cb_solution4.setVisibility(View.INVISIBLE);
cb_solution5.setVisibility(View.INVISIBLE);
} else {
cb_answer3.setVisibility(View.VISIBLE);
cb_answer4.setVisibility(View.VISIBLE);
cb_answer5.setVisibility(View.VISIBLE);
cb_solution3.setVisibility(View.VISIBLE);
cb_solution4.setVisibility(View.VISIBLE);
cb_solution5.setVisibility(View.VISIBLE);
}
if (cb_answer4.getText().toString().isEmpty()) {
cb_answer4.setVisibility(View.INVISIBLE);
cb_answer5.setVisibility(View.INVISIBLE);
cb_solution4.setVisibility(View.INVISIBLE);
cb_solution5.setVisibility(View.INVISIBLE);
} else {
cb_answer4.setVisibility(View.VISIBLE);
cb_answer5.setVisibility(View.VISIBLE);
cb_solution4.setVisibility(View.VISIBLE);
cb_solution5.setVisibility(View.VISIBLE);
}
if (cb_answer5.getText().toString().isEmpty()) {
cb_answer5.setVisibility(View.INVISIBLE);
cb_solution5.setVisibility(View.INVISIBLE);
} else {
cb_answer5.setVisibility(View.VISIBLE);
cb_solution5.setVisibility(View.VISIBLE);
}
for (CheckBox cb : answerCheckBoxes) {
cb.setEnabled(true);
}
}
Es sieht ein wenig umständlich, und ich denke, es ist nicht der beste Weg, dies zu handhaben. Können Sie mir einen Rat geben?