如何从Customized Listview中的RadioGroup获取Selected值

时间:2013-04-11 09:46:14

标签: android listview listadapter baseadapter

在我的应用程序中,我正在开发一个应用程序学生排名系统。

Here,是我之前提到过的链接。现在我的要求已经填写但我无法访问其中的数据..

public class ListMobileActivity extends ListActivity {
static final String[] MOBILE_OS = new String[] { "001 AAAA", "002 BBBB",
        "003 CCCC", "004 DDDD"};
static final String[] MOBILE_OS1 = new String[] { "AAAA", "BBBB",
    "CCCC", "DDDD"};
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //setListAdapter(new ArrayAdapter<String>(this, R.layout.list_mobile,
    //      R.id.label, MOBILE_OS));

    setListAdapter(new MobileArrayAdapter(this, MOBILE_OS));
}

}

和适配器是,..

public class MobileArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;

public MobileArrayAdapter(Context context, String[] values) {
    super(context, R.layout.list_mobile, values);
    this.context = context;
    this.values = values;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.list_mobile, parent, false);
    TextView textView = (TextView) rowView.findViewById(R.id.label1);
    TextView textView1 = (TextView) rowView.findViewById(R.id.label);
    RadioGroup radioSexGroup=(RadioGroup) rowView.findViewById(R.id.radioSex);
    int selectedId = radioSexGroup.getCheckedRadioButtonId();
    RadioButton radioSexButton= (RadioButton) rowView.findViewById(selectedId);;
    textView.setText(values[position]);
    textView1.setText(String.valueOf(position+1));
    // Change icon based on name
    String s = values[position];
    System.out.println(s);
    return rowView;
}
}

我可以对这个单选按钮执行任何操作..

现在我的输出屏幕如下......

enter image description here

但我无法在特定学生的每一行中选择哪个单选按钮,帮助我实现这一目标。我需要使用...

更改适配器

2 个答案:

答案 0 :(得分:0)

使用数组列表保存选择

List<Integer> sexGrp=new ArrayList<Integer>();

在适配器中使用此侦听器

radioSexGroup.setTag(position);
                radioSexGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
                {
                    public void onCheckedChanged(RadioGroup group, int checkedId) {
                        sexGrp.add(Integer.parseInt(group.getTag().toString()), checkedId);

                    }
                });

答案 1 :(得分:0)

getView方法中写下此循环,此处arrayChekedCheckBox是您所有选中的checkbox

的集合
        for (int i = 0; i < arrayListOfStudent.size(); i++) {
            if (i==postion){
                arrayChekedCheckBox.add(postion) ;
                break;
            }
        }