我正在尝试构建一个Android应用程序,它从数据库中获取一些问题及其可能的答案(答案是作为UI按钮动态创建的)。到目前为止我所管理的是,一旦用户点击答案,如果答案是正确的,则按钮的颜色变为绿色,如果答案错误,则颜色变为红色。我想要达到的目的是在答案错误的情况下,将按钮的颜色更改为红色并找到具有正确答案的按钮并将其颜色更改为绿色。我目前正在尝试通过循环遍历单击按钮的父元素的每个子元素,并将其文本与数据库中给出的正确答案进行比较。这就是我的代码:
final TableRow textRow = new TableRow(this);
textRow.addView(questionText, rowParamsQuestions);
layout.addView(textRow, layoutParams);
for(final String option : currentQuestion.getOptions())
{
final Button button = new Button(this);
button.setText(option);
button.setTextSize(16);
button.setBackgroundResource(R.drawable.rounded_shape);
button.setTextColor(Color.WHITE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button clicked = (Button) v;
if (!answeredQuestions.containsKey(currentQuestion)) {
answeredQuestions.put(currentQuestion, clicked.getText().toString());
if (clicked.getText().equals(currentQuestion.getAnswer())) {
clicked.setBackgroundResource(R.drawable.right_answer);
} else {
clicked.setBackgroundResource(R.drawable.wrong_answer);
for (int i = 0; i < textRow.getChildCount(); i++) {
View child = textRow.getChildAt(i);
if (child instanceof Button) {
if (((Button) child).getText().equals(currentQuestion.getAnswer())) {
child.setBackgroundResource(R.drawable.right_answer);
}
}
}
}
非常感谢!