Я создал программно, 5 радиогрупп с 4 переключателями каждый. Каждый радиокнопка представляет собой ответ на вопрос. Я хочу, чтобы кто-то нажал кнопку, если установлен правильный ответ, чтобы установить цвет этого текста в зеленый цвет. То, что я пытаюсь сделать, заключается в том, чтобы знать во втором OnClickListener
, какой переключатель был отмечен, и если он правильный, чтобы сделать текст зеленым. Итак, с этим кодом, когда я нажимаю кнопку, ничего не происходит. Если я удалю условие if (CorrectAnswer == 1)
, и я нажму кнопку, я получу эту ошибку: Attempt to invoke virtual method 'void android.widget.RadioButton.setTextColor(int)' on a null object reference
. Есть идеи? Вот мой код:Как установить цвет текста текста при нажатии кнопки на Java?
boolean isChecked;
RadioButton checkedRadioButton;
RadioGroup radioButtonGroup;
int CorrectAnswer;
radioGroup[i].addView(answer[j]);
answer[j].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkedRadioButton = ((RadioButton) v);
int CorrectAnswer = Integer.parseInt(checkedRadioButton.getTag().toString());
isChecked = true;
if (isChecked) {
if (checkedRadioButton.isChecked() & CorrectAnswer == 1) {
score++;
isChecked = false;
}
}
}
});
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < radioGroup.length; i++) {
int radioGroupId = radioGroup[i].getId();
radioButtonGroup = (RadioGroup) findViewById(radioGroupId);
int checkedRadioButtonId = radioButtonGroup.getCheckedRadioButtonId();
checkedRadioButton = (RadioButton) findViewById(checkedRadioButtonId);
if (CorrectAnswer == 1) {
checkedRadioButton.setTextColor(Color.GREEN);
}
for (int j = 0; j < answer.length; j++) {
radioGroup[i].getChildAt(j).setEnabled(false);
}
}
}
});
Спасибо!
Я бы сказал, '' checkedRadioButton' является null'. – Fildor
Хорошо, но что я могу сделать, чтобы исправить это? –
Проверьте наличие null ... но это только предотвратит исключение. Вам нужно выяснить, почему идентификатор, возвращаемый getCheckedRadioButtonId, не найден findByViewId. – Fildor