@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = getLayoutInflater().inflate(R.layout.listitem_lesson_status, parent, false); holder.tv_per = (TextView) convertView.findViewById(R.id.item_les_perform_tv); holder.rg_per = (RadioGroup) convertView.findViewById(R.id.item_les_radioGroup); holder.radio0 = (RadioButton) convertView.findViewById(R.id.radio0); holder.radio1 = (RadioButton) convertView.findViewById(R.id.radio1); holder.radio2 = (RadioButton) convertView.findViewById(R.id.radio2); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.tv_per.setText(pers[position]); if (!stuPersFromNet.isEmpty()) { if (stuPersFromNet.get(0).property_id == 10) { if (!isTeacher) { holder.radio0.setChecked(false); holder.radio1.setChecked(false); holder.radio2.setChecked(false); } final LessonPerformance performance = new LessonPerformance(); performance.property_value = 1; performance.lesson_id = lessonId; performance.student_id = stuId; performance.property_id = position + 1; holder.rg_per.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.radio0: performance.property_value = 1; break; case R.id.radio1: performance.property_value = 2; break; case R.id.radio2: performance.property_value = 3; break; default: performance.property_value = 1; break; } } }); lesPersToPost.add(performance); } else { if (position < stuPersFromNet.size()) { int value = stuPersFromNet.get(position).property_value; switch (value) { case 1: holder.radio0.setChecked(true); break; case 2: holder.radio1.setChecked(true); break; case 3: holder.radio2.setChecked(true); break; } } holder.rg_per.setEnabled(false); holder.radio0.setEnabled(false); holder.radio1.setEnabled(false); holder.radio2.setEnabled(false); } } else { if (!isTeacher) { holder.radio0.setChecked(false); holder.radio1.setChecked(false); holder.radio2.setChecked(false); } final LessonPerformance performance = new LessonPerformance(); performance.property_value = 1; performance.lesson_id = lessonId; performance.student_id = stuId; performance.property_id = position + 1; holder.rg_per.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.radio0: performance.property_value = 1; break; case R.id.radio1: performance.property_value = 2; break; case R.id.radio2: performance.property_value = 3; break; default: performance.property_value = 1; break; } } }); lesPersToPost.add(performance); } if (!isTeacher) { holder.rg_per.setEnabled(false); holder.radio0.setEnabled(false); holder.radio1.setEnabled(false); holder.radio2.setEnabled(false); } return convertView; }