Страница 1 из 1

Проблема с RadioButton

Добавлено: 04 июн 2015, 19:54
SES
Доброго времени суток.
Программа создает и удаляет RadioButton. Если выбирать туже RadioButton, что и в прошлый раз, то точка в кружочке не отображается. Помогите решить проблему, что я делаю неправильно?
Создание RadioButton:
[syntax=java] private void setAnswers(String[] arrAnswers, int intStartID) {
rgAnswers = (RadioGroup) findViewById(R.id.rgAnswers);
rgAnswers.removeAllViews();
for (int i = intStartID; i < arrAnswers.length; i++) {
RadioButton radioButton = new RadioButton(this);
radioButton.setId(i);
radioButton.setText(arrAnswers);
rgAnswers.addView(radioButton);
}
rgAnswers.setEnabled(true);
}[/syntax]
Обработка выбора:
[syntax=java] public void onCheckedChanged(RadioGroup group, int checkedId) {
group.setEnabled(false);
... ОБРАБОТКА ...
setAnswers(параметры);
}[/syntax]
В RadioGroup у всех RadioButton разные ID. Может быть проблема в том, что в последующем цикле у RadioButton ID могут быть такиеже как и в прошлом цикле, которые уже удалены?

Заранее благодарен, Евгений.

Re: Проблема с RadioButton

Добавлено: 05 июн 2015, 11:34
SES
Попробовал снимать стояние выбора, но результат тот же. Есть идеи? В чем проблема?
[syntax=java] private void setAnswers(String[] arrAnswers, int intStartID) {
int ans_id = rgAnswers.getCheckedRadioButtonId();
Log.e("setAnswers", String.valueOf(ans_id));
if (ans_id != -1) {
RadioButton ans_btn = (RadioButton) findViewById(ans_id);
Log.e("setAnswers", String.valueOf(ans_btn));
ans_btn.setChecked(false);
} else {
rgAnswers.removeAllViews();
for (int i = intStartID; i < arrAnswers.length; i++) {
RadioButton radioButton = new RadioButton(this);
radioButton.setId(i);
radioButton.setTextSize(TypedValue.COMPLEX_UNIT_SP, Integer.decode(strFontSize));
radioButton.setText(arrAnswers);
rgAnswers.addView(radioButton);
}
}
rgAnswers.setEnabled(true);
}
[/syntax]

Re: Проблема с RadioButton

Добавлено: 05 июн 2015, 12:36
SES
Проблема решена.

Просто добавил [syntax=java]rgAnswers.clearCheck();[/syntax] после [syntax=java]rgAnswers.removeAllViews();[/syntax]