Android之ListView包含RadioButton的单选问题解决办法

ListView与RadioButton的结合单选 实现如下效果,默认选中并且单选模式: MainActivity.class: ListView list_pay; private List, Object>> listItems; private String[] textPayName = {"支付方式1", "支付方式2"}; private String[] textOne = {"推荐支付宝用户使用", "推荐微 阅读详情

1.最简洁的解决办法。

adapter里保存当前选中的位置变量,getView方法里,禁用radiobutton的点击事件,只通过listview的onItemClick事件设置选中位置变量,并且通过notifyDataSetChanged刷新列表。getView方法里当前项位置为选中项时设置radiobutton为选中状态。否则为未选中状态。通过adapter.getSelectedItem方法获取当前选中项数据。

注意:本来想着让阻塞radiobutton的获取焦点、获取点击事件,试了各种设置,最后发现rb_status.setClickable(false);禁用radiobutton的点击事件是有效的。


lv_opt.setAdapter(adapter);
		lv_opt.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				adapter.setSelectedIndex(position);
			}
		});


public class AdapterOptionList extends BaseAdapter<OptionItem> {

	public AdapterOptionList(Context context, List<OptionItem> list) {
		super(context, list);
	}
/**
<span style="white-space:pre">	</span> * 设置选中的项目
<span style="white-space:pre">	</span> * 
<span style="white-space:pre">	</span> * @param position
<span style="white-space:pre">	</span> */
<span style="white-space:pre">	</span>public void setSelectedIndex(int position) {
<span style="white-space:pre">		</span>this.selectedIndex = position;
<span style="white-space:pre">		</span>notifyDataSetChanged();
<span style="white-space:pre">	</span>}
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder viewHolder;
		if (null == convertView) {
			viewHolder = new ViewHolder();
			LayoutInflater inflater = LayoutInflater.from(context);
			convertView = inflater.inflate(R.layout.item_opt,null);
			viewHolder.rb_status = (RadioButton) convertView
					.findViewById(R.id.rb_status);
			viewHolder.tv_title_opt = (TextView) convertView
					.findViewById(R.id.tv_title_opt);
			viewHolder.tv_opt_detail = (TextView) convertView
					.findViewById(R.id.tv_opt_detail);
			convertView.setTag(viewHolder);
		} else {
			viewHolder = (ViewHolder) convertView.getTag();
		}
		viewHolder.rb_status.setClickable(false);

		OptionItem opt = list.get(position);
		if(selectedIndex == position){
			viewHolder.rb_status.setChecked(true);
			opt.setSeletedStatus(true);
		}else{
			viewHolder.rb_status.setChecked(false);
			opt.setSeletedStatus(false);
		}
		
		viewHolder.tv_title_opt.setText(opt.getName());
		viewHolder.tv_opt_detail.setText(opt.getDiscription());
		return convertView;
	}

	class ViewHolder {
		RadioButton rb_status;
		TextView tv_title_opt;
		TextView tv_opt_detail;
	}
}

2.最简单粗暴的办法。

adapter里设置每一个radiobutton的状态集合变量,在radiobutton的setOnCheckedChangeListener方法里设置集合里的每个radiobutton状态,然后通过notifyDataSetChanged刷新列表。

比如http://blog.youkuaiyun.com/checkin001/article/details/11519131

android 自定义ListView 使其带单选框按钮,并解决item点击不响应的问题 android 自定义ListView 使其带单选框按钮,并解决item点击不响应的问题 自己定义ListView就要自己写个LIstviewAdapter继承BaseAdapter这个类然后通过其中的getView()方法把数据映射到相应控件之中 下面是我实现的带单选框的listView(如果是想带按钮实现更简单,就不需要考虑单选框的按钮特性了) 在做的过程之中出现了点击item无响应的情 阅读详情

相关推荐

Modbus4J vs EasyModbus4J:哪个Java库更适合你的工业项目?

本文深入对比了Java领域两大Modbus通信库Modbus4J与EasyModbus4J。Modbus4J设计稳健、类型安全,适合复杂业务集成;EasyModbus4J基于Netty,在高并发场景下性能更优。文章从架构、性能、API及生产环境多维度分析,为工业物联网项目选型提供决策依据。

weixin_28475533的博客 309

Android使用RecyclerView+BaseQuickAdapter处理item中包含RadioButton的单选实现

先上代码 bean public class ListBean { private String name; boolean check=false;//是否选中 public ListBean(String name) { this.name = name; } public boolean isCheck() { return check; } public void setCheck(boolean c

xj-up的博客 1万+

深入理解Linux 内核追踪机制

Linux 存在众多 tracing tools,比如 ftrace、perf,他们可用于内核的调试、提高内核的可观测性。众多的工具也意味着繁杂的概念,诸如 tracepoint、trace events、kprobe、eBPF 等,甚至让人搞不清楚他们到底是干什么的。本文尝试理清这些概念。

youzhangjing_的博客 1730

Android Adapter 里面写 RadioGroup、RadioButton、CheckBox 状态错乱问题的 2 种解决方案

前言: RadioButton 的 选择状态一律由 radioGroup.check() 去处理,清除选择 用 rg.clearCheck() 处理,setChecked 会导致属性改变,但 UI 上未改变、不能再次选中等一系列问题 方式一: // RadioGroup + RadioButton myViewHolder.rg.clearCheck(); ...

Keep Learning , Keep Improving ! 1666

ICC2:使用analyze_lib_cell_placement检查lib cell的pass rate

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?在place之前需要使analyze_lib_cell_placement命令去检查lib cell在当前的site row/power plan/legalize设置的环境下能够正常place和legalize。下面分享一个脚本去报告pass rate低于2%的lib cell。

m0_61544122的博客 673

SAP 公司间采购简介

SAP公司间采购(Intercompany Procurement)是指企业集团内部不同法人实体之间的采购和销售流程。这种流程在跨国公司或有多个独立运营子公司的企业中非常常见。SAP提供了标准的功能来处理公司间采购,确保财务和物流流程的透明性和效率。以下是SAP公司间采购的基本流程及其相关模块的简介。

我小时候很黑的博客 1375

Android开发中动态向ListView中添加RadioButton(用心抒写)

ListView作为Androd开发中最常用又最“多事”的组件,本人也是既爱之又“恨”之。今天有一个需求:(测试题库中常用到的单选题,多选题等)1、安卓自带的RadioButton,CheckBox太丑了,特别是当选项中出现大图片,ABCD之类的也得加到按钮后面,混合到一起,那是简直没法看了。所以,需要重新绘制RadioButton和CheckBox。2、选项个数不确定,所以需要动态添加。综上说述...

lpCrazyBoy的博客 2225

【swjtu】算法实验2.4分析算法时间复杂度

分析给定算法的时间复杂度。 上机实验,绘制不同输入情况下的运行时间曲线,并与(1)中的分析结果进行比较。 撰写相应的实验报告,实验报告内容包括:实验目的、实验任务、 实验环境、实验步骤、实验结果及其分析以及实验总结等部分内容。

qq_52046937的博客 730

AndroidStudio RecyclerView item点击事件及解决RadioButton选中混乱

因为时间不够,先整理一些小知识点,最后再统一排版 1 RecyclerView点击事件 //设置点击事件的接口 private Inspection_Switch_One_Level_Adapter.ItemClickListener mItemClickListener; public interface ItemClickListener { void onItemClick(...

weixin_42415553的博客 2239

vue2/3 - 【超详细】最新网站接入使用支付宝支付功能,点击支付跳转新页面后生成订单及支付二维码,实现支付宝在线付款详细的教程(整个支付的完整配置及支付流程,一键复制源码开箱即用)!

vue支付宝付款,vue支付宝支付,vue如何实现支付宝在线付款,vue网页pc项目接入支付宝支付,vue支付宝支付详细教程,vue2支付宝在线支付的详细示例代码,vue如何做支付宝付款,vue怎么实现支付宝的付款功能,vue调用支付宝进行付款支付,vue PC项目实现 支付宝支付,vue h5页面调用支付宝支付,vue页面唤起支付宝支付功能,vue支付宝支付跳转到新页面,vue如何跳转新开一页展示支付宝二维码支付,vue怎么新开页面进行支付宝在线支付,vue新页面支付宝支付功能,前端vue支付宝支付教程,

✅ 精选推荐文章 5729

mediasoup源码分析(二十)服务端架构设计

目录 简介 信令服务(房间服务) 调度服务 媒体服务 简介 流媒体服务器大的方向上可以分为上述三个模块。目前行业内都是分布式服务,独立部署。mediasoup信令与媒体之间虽然可以管道通信。但在行业内,服务之间通过管道通信用的少。 一般是rpc、mq,或者传统的tcp。这块licode架构比较不错,licode是信令和媒体服务通过MQ消息队列解耦。 下面介绍一下这三个服务主要功能,当然文中所说也是一家之言。 信令服务(房间服务) 信令服务也称为房间服务。有的企业把信令和房间分开,信..

lcalqf的专栏 1545

Android 通过listView+RadioButton实现列表的单选功能

           Android 通过listView+RadioButton实现列表的单选功能      项目里面有个页面需要使用listVIew列表中含有单选按钮,于是就动手写一个,在item中添加了一个RadioButton,运行app后,发现了一个问题,就是在列表中选中了一列,滑动后会发现其他列也会有选中的情况,这不是我想要的效果。在网上查找了一下,发现原来LIstView存在复用之...

tiger_gy的博客 6747

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android ListView+RadioButton实现单选的方法

实现列表的单项选择

superyuanzhe的专栏 1142

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android实现LIstView条目单选和多选RadioButton

看效果图是不是你想要的 ListView的布局 <ListView android:choiceMode="singleChoice" android:background="#fff" android:layout_marginTop="5dp" android:id="@+id/listview_template" and

sungeAndroid的博客 1402

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android listview每个item里面有个radiobutton,怎么弄radibutton的单选事件

如题   android listview每个item里面有个radiobutton,怎么弄radibutton的单选事件,点击某个radio的时候它选中,其他的取消,  牛人们,,,请给出具体的代码    在网上找的 都没有效果,要么就是只能点击一个不能换成其他的了,要么就是都选上了。。。 final RadioButton mRadioButton = (RadioButton) v

ruanru7457的博客 1363

Android ListView中点击单行实现RadioButton的单选功能,自定义Item布局文件

Android ListView中点击单行实现RadioButton的单选功能,自定义Item布局文件  需求描述:Android的ListView中,在自定义的Item中添加RadioButton来指示选中的某个单行,要求点击单行而不是RadioButton就触发选择功能。①在包含ListView的layout文件中,将ListView元素属性设置为单选模式android:choiceMode=...

後雪寒的专栏 2984

Android中ListView与RadioButton结合----自定义单选列表

有时候我们需要制作自定义的单选列表,但是会遇到一些问题,比如多选,假选问题,所以网上找了找资料,整理一个demo出来,贴一下代码: <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_co

qq544529563的专栏 3242

Android:ListView(列表)与RadioButton(单选框)的组合

一.效果图:   二.布局 sms_model.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" a

总结要细致 1万+

Android 之 RadioButton (单选按钮)& Checkbox (复选框)

虽然5.0后的RadioButton和Checkbox都比旧版本稍微好看了点,但是对于我们来说 可能还是不喜欢或者需求,需要自己点击效果!实现起来很简单,先编写一个自定义 的selctor资源,设置选中与没选中时的切换图片~!实现效果图如下:PS:这里素材的原因,有点小...

leyang0910的博客 4766

android listview实现单选按钮,Android ListView+RadioButton实现单选的方法

【目标】实现列表的单项选择 【方案】在ListView中添加RadioButton。【存在的问题】若设置RadioButton为可点击时,会屏蔽ListView的itemClick。各个RadioButton互相没有关联,可以都把它们选中却无法取消。【我的解决办法】取消ListView 的onItemClickListener()使用RadioButton的onClickListener()新建一...

weixin_42134097的博客 971

android listview 多个button,Android实现LIstView条目单选和多选RadioButton

先看效果ListView的布局android:choiceMode="singleChoice"android:background="#fff"android:layout_marginTop="5dp"android:id="@+id/listview_template"android:layout_above="@id/ll"android:layout_width="match_paren...

weixin_28725037的博客 406

android 应用之listview添加radiobutton,获取textView

程序效果:点击一整行,更换radiobutton选择。xml代码:

dany1202的专栏 1万+

Android组件RadioButton、checkBox、listview、spiner综合实例及Intent传值

Android组件RadioButton、checkBox、listview、spiner综合实例及Intent传值 组件解释: RadioButton单选按钮 checkBox复选框是一种有双状态按钮的特殊类型,可以选中或者不选中。 listview列表 列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器 用来把数据映射到ListView上的中。3.数

任海丽(3G/移动开发) 5588

Android ListView Item含有RadioButton、CheckBox、RatingBar、EditText

ListView在项目里面会经常遇到,但是有时候在使用的过程中会遇到一些让我们意想不到的问题,ListView的复用问题在前面的博客中已经介绍过了点击浏览ListView的复用问题。这边博客主要是关于什么的呢?先来看看效果图 这一篇可以说是关于ListView的复用的经常用到的事例。单选,多选,星星的滑动和修改保存EditText的内容 单选的不单单是复用的问题,之所以可以实现单选就是我们大

刘永祥的专栏 2414

Android随记------带RadioButton的单选listView

ListView本身通过setChoiceMode(ListView.CHOICE_MODE_SINGLE),AlertDialog利用setSingleChoiceItems来实现单选功能list,不过这种系统提供的是简单的text+raido的组合,其实就是CheckedTextView。不过项目中,需要image+radio的组合,系统中没提供简单的方法直接设定,基本的思路即自定义list里

sevensundark的专栏 9811
上一篇: android之EditText焦点问题
下一篇: android之退出应用程序
allenlee
博客等级 码龄18年 95粉丝 83原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值