Android 如何从自定义Listview中的RadioGroup中获取选定值
在我的应用程序中,我正在开发一个应用程序学生排名系统 ,是我刚才问的链接。现在我的要求已经满足了,但我无法访问其中的数据Android 如何从自定义Listview中的RadioGroup中获取选定值,android,listview,listadapter,baseadapter,Android,Listview,Listadapter,Baseadapter,在我的应用程序中,我正在开发一个应用程序学生排名系统 ,是我刚才问的链接。现在我的要求已经满足了,但我无法访问其中的数据 public class ListMobileActivity extends ListActivity { static final String[] MOBILE_OS = new String[] { "001 AAAA", "002 BBBB", "003 CCCC", "004 DDDD"}; static final String[] MOBILE
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));
}
}
公共类ListMobileActivity扩展了ListActivity{
静态最终字符串[]MOBILE_OS=新字符串[]{“001 AAAA”,“002 BBBB”,
“003 CCCC”、“004 DDDD”};
静态最终字符串[]MOBILE_OS1=新字符串[]{“AAAA”,“BBBB”,
“CCCC”、“DDDD”};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setListAdapter(新阵列适配器)(此,R.layout.list\u移动、,
//R.id.label,MOBILE_OS));
setListAdapter(新的MobileArrayAdapter(这个,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;
}
}
公共类MobileArrayAdapter扩展了ArrayAdapter{
私人最终语境;
私有最终字符串[]值;
公共MobileArrayAdapter(上下文,字符串[]值){
super(上下文、R.layout.list\u mobile、值);
this.context=上下文;
这个值=值;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图行视图=充气机。充气(R.layout.list\u mobile,parent,false);
TextView TextView=(TextView)rowView.findViewById(R.id.label1);
TextView textView1=(TextView)rowView.findViewById(R.id.label);
RadioGroup RadioExGroup=(RadioGroup)rowView.findViewById(R.id.RadioEx);
int selectedId=RadioExGroup.getCheckedRadioButtonId();
RadioButton RadioExButton=(RadioButton)rowView.findViewById(selectedId);;
setText(值[位置]);
textView1.setText(String.valueOf(position+1));
//根据名称更改图标
字符串s=值[位置];
系统输出打印项次;
返回行视图;
}
}
我可以对这个单选按钮执行任何操作
现在我的输出屏幕如下
但我无法得到在每一行选择哪个单选按钮,请帮助我实现这一点。是否需要使用…使用数组列表来保存选择来更改适配器
List<Integer> sexGrp=new ArrayList<Integer>();
在你的
getView
方法中写下这个循环,这里arrayChekedCheckBox
是你所有选中的复选框的集合
for (int i = 0; i < arrayListOfStudent.size(); i++) {
if (i==postion){
arrayChekedCheckBox.add(postion) ;
break;
}
}
for(int i=0;i
在哪里可以实现此代码。。!在适配器的getView()中。别忘了从checkedd中获取RadioButton的元素位置。数据是动态数据,我在运行时获取数组中的数据。我已经为我的应用程序展示了一个输入示例
for (int i = 0; i < arrayListOfStudent.size(); i++) {
if (i==postion){
arrayChekedCheckBox.add(postion) ;
break;
}
}