这是我的Adapter类 我将发布用于将静态JSON数据拆分为带有RadioButton的ListView。我将分裂并设置他们的位置Radiobuttons。我的问题是如何在所有列表视图中选择radiobutton ..
public class TestAdapter extends BaseAdapter {
// Declare Variables
Context context;
String[] ques_no, ques_name, opt1, opt2, opt3, opt4,answer;
LayoutInflater inflater;
ArrayList<QuestionList>qArrayList;
public boolean[] thumbnailsselection;
public TestAdapter(Context context, ArrayList<QuestionList> testData)
{
this.context=context;
this.qArrayList=testData;
}
public TestAdapter(Context context, String[] ques_no, String[] ques_name,String[] opt1,String[] opt2,String[] opt3,String[] opt4) {
this.context = context;
this.ques_no = ques_no;
this.ques_name = ques_name;
this.opt1 = opt1;
this.opt2 = opt2;
this.opt3 = opt3;
this.opt4 = opt4;
}
@Override
public int getCount() {
if(qArrayList !=null){
return qArrayList.size();
}
return ques_no.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public ArrayList<QuestionList> getBox() {
ArrayList<QuestionList> box = new ArrayList<QuestionList>();
for (QuestionList p : qArrayList) {
box.add(p);
}
return box;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.test_rowlayout, null);
holder = new ViewHolder();
holder.radio_group=(RadioGroup)convertView.findViewById(R.id.RadioGroup01);
holder.question_no = (TextView) convertView.findViewById(R.id.question_no);
holder.question_name = (TextView) convertView.findViewById(R.id.question_name);
holder.option1 = (RadioButton) convertView.findViewById(R.id.option1);
holder.option2 = (RadioButton) convertView.findViewById(R.id.option2);
holder.option3 = (RadioButton) convertView.findViewById(R.id.option3);
holder.option4 = (RadioButton) convertView.findViewById(R.id.option4);
holder.submit = (RadioButton) convertView.findViewById(R.id.submit_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//holder.question_no.setText(ques_no[position]);
holder.question_name.setText(""+qArrayList.get(position).Question);
holder.option1.setText(""+qArrayList.get(position).Option1);
holder.option2.setText(""+qArrayList.get(position).Option2);
holder.option3.setText(""+qArrayList.get(position).Option3);
holder.option4.setText(""+qArrayList.get(position).Option4);
HashMap<Integer,String> radioMap = new HashMap<Integer, String>();
radioMap.put(holder.option1.getId(),holder.option1.getText().toString());
radioMap.put(holder.option2.getId(),holder.option2.getText().toString());
radioMap.put(holder.option3.getId(),holder.option3.getText().toString());
radioMap.put(holder.option4.getId(),holder.option4.getText().toString());
holder.radio_group.setTag(new Integer(position));
if (qArrayList.get(position).get(holder.radio_group.getCheckedRadioButtonId()) != null) {
RadioButton r = (RadioButton) holder.radio_group
.getChildAt((Integer) qArrayList.get(position).get(holder.radio_group.getCheckedRadioButtonId()));
r.setChecked(true);
System.out.println("List View Position"+r);
} else {
holder.radio_group.clearCheck();
}
holder.radio_group.setTag(radioMap);
holder.radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
HashMap<Integer,String> data = (HashMap<Integer,String>) group.getTag();
Toast.makeText(context,data.get(checkedId),Toast.LENGTH_SHORT).show();
int listcount = group.getChildCount();
for (int x = 0; x < listcount; x++) {
RadioButton clicked_btn = (RadioButton) group.getChildAt(x);
if (clicked_btn.getId() == checkedId) {
//Toast.makeText(context, clicked_btn.getText().toString(), Toast.LENGTH_SHORT).show();
System.out.println(clicked_btn.getText().toString());
// int pos = holder.radio_group.indexOfChild(convertView.findViewById(checkedId));
}
}
}
});
return convertView;
}
private class ViewHolder {
ImageView img_fimage;
TextView question_no, question_name;
RadioGroup radio_group;
RadioButton option1, option2, option3, option4,radio_btn_answer;
Button submit;
ListView list;
}
}