2

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

这里,是我之前问过的链接。现在我的要求已满,但我无法访问其中的数据..

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;
}
}

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

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

在此处输入图像描述

但是我无法在特定学生的每一行上选择哪个单选按钮,请帮助我实现这一点。我需要使用...更改适配器吗

4

2 回答 2

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);

                    }
                });
于 2013-04-11T10:06:11.170 回答
0

在你的方法中写这个循环getView,这里arrayChekedCheckBox是你所有检查的集合checkbox

        for (int i = 0; i < arrayListOfStudent.size(); i++) {
            if (i==postion){
                arrayChekedCheckBox.add(postion) ;
                break;
            }
        }
于 2013-04-11T10:12:12.707 回答