我正在使用片段布局在ListView中显示一行,并且我使用ListAdapter来填充ListView。每行包含一个TextView和一个RadioGroup,每个无线电组包含2个RadioButtons,表示是和否。
问题在于,当我运行应用程序时,当我在第一个组上选择一个RadioButton(如是)时,它会导致另一个RadioButton(也是)在ListView的另一行中的另一个组中被选中。
以下是行片段的布局代码:
ctr += 1
我的ListAdapter类:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/questionTextView">
<TextView
android:text="Dis one na question wey go need yes or no answer?"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/questionView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="19dp"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textSize="20sp" />
<RadioGroup
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/customRadioGroup"
android:layout_marginTop="16dp"
android:layout_below="@+id/questionView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<RadioButton
android:text="Yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/yesRadioBtn"
android:layout_alignBaseline="@+id/noRadioBtn"
android:layout_alignBottom="@+id/noRadioBtn"
android:layout_toLeftOf="@+id/noRadioBtn"
android:layout_toStartOf="@+id/noRadioBtn"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp" />
<RadioButton
android:text="No"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/noRadioBtn"
android:layout_below="@+id/questionsTitle"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp" />
</RadioGroup>
答案 0 :(得分:0)
如果您重复使用RadioGroup
(View
),则需要重置convertView != null
。以下更改会将RadioGroup
重置为“无选择”,但您需要将其设置为内部数据结构answers
中反映的值。
RadioGroup radioGroup = (RadioGroup)view.findViewById(R.id.customRadioGroup);
if (convertView != null) {
radioGroup.clearCheck();
}