link1,link2
我可以找到多种选择模式的方式.但不适用于单一选择模式.有什么想法吗?
???编辑???
如何在列表视图中找到项目的相应标记的标记
当你点击另一个单选按钮然后实现setonCheckedchangelistener(监听器)并检查已经检查的位置并取消选中该radiobutton时,跟踪现在检查单选按钮的ListvIEw的位置ID.
您可以将单选按钮的状态存储到自定义模型(包含textvIEw,imagevIEw,radiobutton等用于ListvIEw单行的控件的模型)中,该模型已添加到列表视图中
检查this文章以获取使用模型,并在给定复选框示例的情况下将组件处理到ListvIEw中
更新
我想你可以这样得到标签
((VIEw)((VIEwGroup)ListvIEw.getItemAtposition(0)).getTag()).getTag();or((button)l.getItemAtposition(0)).getTag();
更新2
假设这是你的适配器和arrayList对象
private List<Model> List_model = new ArrayList<Model>();private ArrayAdapter<Model> modelAdapter;
你的Model类看起来像这样
private class Model{ private String text1 = ""; private boolean isChecked = false; public Model(String text1){ this.text1 = text1; isChecked = false; }}
你的观察者
private static class VIEwHolder{ TextVIEw textVIEw; Radiobutton radioBtn;}
将Listmodel传递给构造函数中的CustomAdapter类
private List<Model> List;private Context context;public CustomAdapter(Context context,List<Model> List){ super(context,R.layout.List_layout,List); this.List = List; this.context = context;}
现在在getVIEw()
@OverrIDepublic VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { VIEw vIEw = null; if(convertVIEw == null){ LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); vIEw = inflater.inflate(R.layout.gcalendar_List_layout,null); final VIEwHolder vIEwHolder = new VIEwHolder(); vIEwHolder.textVIEw = (TextVIEw) vIEw.findVIEwByID(R.ID.text1); vIEwHolder.radioBtn = (Radiobutton) vIEw.findVIEwByID(R.ID.radioBtn); vIEwHolder.radioBtn.setonCheckedchangelistener(new OnCheckedchangelistener() { public voID onCheckedChanged(Compoundbutton buttonVIEw,boolean isChecked) { Model element = (Model) vIEwHolder.checkBox.getTag(); element.isChecked = buttonVIEw.isChecked(); boolean isChecked = true; for(int i=0;i<List.size();i++){ if(!List.get(i).isChecked){ List.get(i).isChecked=false; // more implement here or may be this work break; } } } }); vIEw.setTag(vIEwHolder); vIEwHolder.radioBtn.setTag(List.get(position)); }else{ vIEw = convertVIEw; ((VIEwHolder)vIEw.getTag()).radioBtn.setTag(List.get(position)); } VIEwHolder holder = (VIEwHolder) vIEw.getTag(); holder.textVIEw.setText(List.get(position).name); holder.radioBtn.setChecked(List.get(position).isChecked); return vIEw;}总结
以上是内存溢出为你收集整理的Android – listView中的单选按钮?全部内容,希望文章能够帮你解决Android – listView中的单选按钮?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)