Мы работаем над проектом, в котором есть элемент списка с группой радио в каждом элементе списка. Кнопки радио в нем генерируются dynamically.The проблема в том, что на прокрутке состояние выбранных переключателей становится deselected.The Ниже приведен код, который мы постарались:Состояние динамических переключателей, переключающихся при прокрутке в списке Android
Адаптер GetView() метод:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
option_list = question_list_array.get(position).option_list;
number_of_options = option_list.size();
v_single=convertView;
if (v_single == null)
{
v_single = inflater.inflate(R.layout.single_choice_layout, null);
sh = new SingleHolder();
sh.single_question_name = (TextView) v_single.findViewById(R.id.single_question_name);
sh.single_radiogroup = (RadioGroup) v_single.findViewById(R.id.single_radiogroup);
v_single.setTag(sh);
}
else
{
sh = (SingleHolder) v_single.getTag();
}
sh.single_radiogroup.clearCheck();
sh.single_radiogroup.removeAllViews();
sh.single_question_name.setText(question_list_array.get(position).getQuestion_name());
for (int j = 0; j < number_of_options; j++)
{
RadioButton rb = new RadioButton(context);
rb.setId(Integer.parseInt(option_list.get(j).getOption_id()));
rb.setText(option_list.get(j).getOption_name());
sh.single_radiogroup.addView(rb);
}
sh.single_radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
for (int n = 0; n < group.getChildCount(); n++)
{
RadioButton rb = (RadioButton) group.getChildAt(n);
if (Integer.parseInt(option_list.get(n).getOption_id())== checkedId)
{
k++;
String result = rb.getText().toString();
sr=new SingleResult();
sr.setAns(result);
sr.setQuestion_id(question_list_array.get(k).getQuestion_id());
single_result.add(sr);
Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
return;
}
}
}
});
v_final=v_single;
return v_final;
}
private class SingleHolder
{
TextView single_question_name;
RadioGroup single_radiogroup;
}
EDIT: это файл single_choice_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/single_question_name"
/>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/single_radiogroup"
android:orientation="vertical"
>
</RadioGroup>
</LinearLayout>
@AnjaliTripathi. Наша проблема заключается не в изменении позиции кнопки Radio. Наша проблема заключается в изменении выбранного состояния переключателя при прокрутке. – jojo
это то же самое, потому что мы используем радиокнопку в целом listview –
, вероятно, вам также нужен ваш файл макета –