Android – listView中的单选按钮?

Android – listView中的单选按钮?,第1张

概述我有一个场景,我们应该在listview中有一个单选模式单选按钮.当我点击radiobutton它应该去启用状态.当我点击整个项目时,它应该重定向到新的活动.我在下面提到链接 link1,link2 我可以找到多种选择模式的方式.但不适用于单一选择模式.有什么想法吗? ???编辑??? 如何在列表视图中找到项目的相应标记的标记 一种方法,但我不知道它是完美与否. 当你点击另一个单选按钮然后实现se 我有一个场景,我们应该在ListvIEw中有一个单选模式单选按钮.当我点击radiobutton它应该去启用状态.当我点击整个项目时,它应该重定向到新的活动.我在下面提到链接

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中的单选按钮?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1128439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存