Друзья, у меня следующая проблема.У меня есть фрагмент с двумя вкладками (A и B).На вкладке AI есть вид списка, который в каждой строке показывает радиогруппу, содержащую 5 радиокнопок.Что мне нужно, это захватить проверенную радиогруппу в ArrayList, но я не могу сделать это хорошо.
Что я делаю, так это то, что я перехватываю выбранную кнопку радио с помощью метода setOnCheckedChangeListener и, в зависимости от выбранной кнопки, яя добавляю элементы в ArrayList.
В моем собственном адаптере у меня есть это:
@Override
public View getView(final int position, final View convertView, ViewGroup viewGroup) {
ArrayList<String> selectedAnswers = new ArrayList<String>();
final RadioGroup radioGroup = (RadioGroup)v.findViewById(R.id.opciones_radio);
final RadioButton radio1 = (RadioButton)v.findViewById(R.id.radioButton1);
final RadioButton radio2 = (RadioButton)v.findViewById(R.id.radioButton2);
final RadioButton radio3 = (RadioButton)v.findViewById(R.id.radioButton3);
final RadioButton radio4 = (RadioButton)v.findViewById(R.id.radioButton4);
final RadioButton radio5 = (RadioButton)v.findViewById(R.id.radioButton5);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int checkedId) {
switch (checkedId){
case R.id.radioButton1 :
selectedAnswers.add("1");
break;
case R.id.radioButton2 :
selectedAnswers.add("2");
break;
case R.id.radioButton3 :
selectedAnswers.add("3");
break;
case R.id.radioButton4 :
selectedAnswers.add("4");
break;
case R.id.radioButton5 :
selectedAnswers.add("5");
break;
}
Log.e("RESPUESTA: ", String.valueOf(selectedAnswers));
}
});
}
Но это вызывает у меня несколько проблем.
Моя главная проблема заключается в том, что если явыберите разные радиокнопки, и я перейду с вкладки A на вкладку B, Arraylist удваивается.
Например.Этот код возвращает:
E / RESPUESTA :: [1, 2, 5, 1]
Если сейчас я перейду с TAB A на TAB B и вернусь кTAB A, я получаю это:
E / RESPUESTA :: [1, 2, 5, 1, 1, 2, 5, 1, 1, 2, 5, 1]
Это удвоило arraylist в два раза.Я пытался заменить setOnCheckedChangeListener на setOnClickListener, но он не работает должным образом.
Любой совет для решения этой проблемы?