在我的活动中包含列表视图。 ListView行在RadioGroup中包含一个Textview和三个Radiobutton。当我在滚动listView之后第一行选择第一个单选按钮后,十(10)行会自动选择第一个单选按钮出现。这将在每十(10)行之后发生,我不知道该怎么做?在Listview中使用RadioGroup滚动问题?
CustomAdapter类
public class StudentAttendanceCustomAdapter extends BaseAdapter{
private Activity activity;
private LayoutInflater inflater;
private List<StudentDataReader> studentRecord;
private List<StudentDataReader> mOriginalValues;
public HashMap<String, String> radioMap;
private int mSelectedPosition = -1, radioButtonId;
public StudentAttendanceCustomAdapter(TeacherAttendanceActivity activity, List<StudentDataReader> studentList) {
this.activity = activity;
this.studentRecord = studentList;
this.mOriginalValues = studentList;
}
@Override
public int getCount() {
return studentRecord.size();
}
@Override
public Object getItem(int position) {
return studentRecord.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
static class ViewHolder{
TextView studentName;
RadioButton rb_p;
RadioButton rb_a;
RadioButton rb_l;
RadioGroup rg;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder hoder = new ViewHolder();
if (inflater == null)
{
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
if(convertView == null){
convertView = inflater.inflate(R.layout.teacher_attendance_row,parent,false);
hoder.studentName = (TextView)convertView.findViewById(R.id.tv_attendance_studentName);
hoder.rg = (RadioGroup)convertView.findViewById(R.id.rg_1);
hoder.rb_p = (RadioButton)convertView.findViewById(R.id.radioButton_present);
hoder.rb_a = (RadioButton)convertView.findViewById(R.id.radioButton_absent);
hoder.rb_l = (RadioButton)convertView.findViewById(R.id.radioButton_leave);
convertView.setTag(hoder);
}else {
hoder = (ViewHolder)convertView.getTag();
}
final String str_studentId,str_studentName;
final StudentDataReader s = studentRecord.get(position);
hoder.studentName.setText(s.getStudentName());
str_studentId= s.getStudentId();
str_studentName = s.getStudentName();
hoder.rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int childCount = group.getChildCount();
for (int i = 0; i < childCount; i++) {
RadioButton radioButton = (RadioButton) group.getChildAt(i);
if (radioButton.getId() == checkedId) {
s.setPresent(radioButton.getText().toString());
notifyDataSetChanged();
}
}
}
});
return convertView;
}
}
请任何一个可以帮助我在此先感谢。
你可以检查它 - http://stackoverflow.com/a/35862385/2128166 它有不同的数据,但你可以参考你如何能够保持单选按钮的状态。 – androidnoobdev