浮生偷得半日闲,等接口定义的过程中,重新复习下adapter+listview实现单选的方法

主界面

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.locallistviewradiobutton.MainActivity" ><ListViewandroid:id="@+id/lv_radiobutton"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="@null"></ListView></RelativeLayout>

activity_listview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="match_parent"            android:gravity="center"      android:orientation="vertical" ><LinearLayout android:id="@+id/ll_rg"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal" android:background="#C6C6C6"><RadioButtonandroid:id="@+id/rb_select"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:focusable="false"/><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="name"android:textSize="20sp"/><ImageViewandroid:id="@+id/iv_card"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="centerInside"android:layout_marginLeft="20dp"android:layout_marginRight="20dp"android:layout_marginTop="2dp"android:layout_marginBottom="2dp"android:layout_gravity="left"android:adjustViewBounds="true"android:src="@drawable/ic_launcher" /></LinearLayout><Viewandroid:layout_width="fill_parent"android:layout_height="10dp"android:background="#ffffff" /></LinearLayout>

MainActivity.java

package com.example.locallistviewradiobutton;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {private ListView lv_radiobutton;private RBlistAdapter adapter;private String[] names = new String[] { "a","b","c","d","e" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv_radiobutton = (ListView) findViewById(R.id.lv_radiobutton);adapter = new RBlistAdapter(this, names);lv_radiobutton.setAdapter(adapter);//点击一行任意位置都能保证radiobutton选中lv_radiobutton.setOnItemClickListener(new myOnItemClickListener());}private class myOnItemClickListener implements OnItemClickListener {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {adapter.index = position;//获取位置并传给adapter中的index(public变量)adapter.notifyDataSetChanged();}}public void onBackPressed() {// TODO Auto-generated method stubsuper.onBackPressed();}}

RBlistAdapter.java

package com.example.locallistviewradiobutton;import android.widget.BaseAdapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;public class RBlistAdapter extends BaseAdapter{private LayoutInflater inflater;private String[] picspecies;private viewHolder holder;// 标记用户当前选择的那一个,默认为第一个:(0)public int index = 0;private Context c;public RBlistAdapter(Context c, String[] picspecies) {super();this.c = c;this.picspecies = picspecies;inflater = LayoutInflater.from(c);}@Overridepublic int getCount() {return picspecies.length;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@SuppressLint("InflateParams") @Overridepublic View getView(final int position, View convertView, ViewGroup parent) {holder = new viewHolder();if (convertView == null) {convertView = inflater.inflate(R.layout.activity_listview, null);holder.nameTxt = (TextView) convertView.findViewById(R.id.tv_name);holder.selectBtn = (RadioButton) convertView.findViewById(R.id.rb_select);convertView.setTag(holder);} else {holder = (viewHolder) convertView.getTag();}holder.nameTxt.setText(picspecies[position]);holder.selectBtn.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {if (isChecked) {Toast.makeText(c, "您选择的是:" + picspecies[position],Toast.LENGTH_SHORT).show();index = position;notifyDataSetChanged();}}});if (index == position) {// 选中的条目和当前的条目是否相等holder.selectBtn.setChecked(true);} else {holder.selectBtn.setChecked(false);}return convertView;}public class viewHolder {public TextView nameTxt;public RadioButton selectBtn;}}

代码下载

本地数据下,radiobutton和图片组合,利用adapter+listview进行单选相关推荐

  1. TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg格式

    TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg 格式 目录 输出结果 核心代码 输出结果 核心代码 def inputs_origin(data_dir) ...

  2. RAC环境下创建本地数据文件的解决方法

    引用收藏:http://blog.itpub.net/501889/viewspace-1083311/ 同事不小心,在RAC环境下创建了本地数据文件,这个肯定会出问题的,节点2不能访问此数据文件.其 ...

  3. 利用python对本地数据进行操作

    一.TXT文件操作 1.1 TXT文件介绍 由字符串行组成,每行由EOL (End Of Line) 字符隔开,'\n' 1.2 查看文件数据 该文本文件是一个关于Python语言的介绍 1.3 打开 ...

  4. 自动完成下拉框 Select2 关键字搜索的实例(本地数据与异步获取)

    为什么80%的码农都做不了架构师?>>>    最终效果 首先我们要有一个基础的文本框 <input name="test" type="hidd ...

  5. vue删除图片同时删除本地文件_删除图片数据时同时删除图片文件夹里面的相应图片文件的方法...

    作者:Mr.XQIJIANG 本文版权归[Mr.XQIJIANG]所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. /// /// 删除图 ...

  6. 利用python调用本地摄像头拍照,对图片命名并保存到指定位置,带界面

    1.需求: 因项目需要做一个以图搜图的小程序,需要储备零件图库,约1000种 2.原计划&痛点 原本想通过手机挨个拍照,再拷贝出来,重命名,这样会耽误大量时间,且容易出错 3.解决方案 于是做 ...

  7. 大数据下机械智能诊断的机遇与挑战,阅读文献系列(一)

    阅读文献系列一 论文题目:大数据下机械智能诊断的机遇与挑战 1.大数据时代下的故障诊断的挑战: 2.机械大数据的特性: 3.应该怎么做: 4.现有工作: 5.故障诊断三方面研究: 5.1 信号获取 5 ...

  8. win10环境下搭建IIS图片服务器

    Win10环境下搭建IIS图片服务器 背景交代:项目开发中在不依赖后端接口的前提下 前端基于mock获取数据,涉及到图片这块,需要完全还原线上场景,多以需要将图片放在服务器上.所以需要在本地利用win ...

  9. label-studio批量上传本地数据

    前言 Label Studio是一个非常好用的开源数据标注工具,拥有对包括音频.文本.图片.视频和时间序列等各种数据类型的标注能力,有简单易用的UI设计和多导出格式的支持,能够有利于数据准备和利用已有 ...

  10. 联邦学习【分布式机器学习技术】【①各客户端从服务器下载全局模型;②各客户端训练本地数据得到本地模型;③各客户端上传本地模型到中心服务器;④中心服务器接收各方数据后进行加权聚合操作,得全局模型】

    随着计算机算力的提升,机器学习作为海量数据的分析处理技术,已经广泛服务于人类社会. 然而,机器学习技术的发展过程中面临两大挑战: 一是数据安全难以得到保障,隐私数据泄露问题亟待解决: 二是网络安全隔离 ...

最新文章

  1. 5、找出100到1000内的不含9的素数,存到result.txt文件中
  2. OSError: Unable to download 'ffmpeg.win32.exe'. Perhaps there is a no internet connection? If there
  3. python调用nacos账号密码,Python脚本,使用私钥(如果可用)或用户名密码
  4. 【Socket网络编程】3.字节序转换函数htons、htonl ,地址转换函数inet_ntoa、inet_ntop、inet_pton、inet_addr
  5. 一文读懂除法溢出-使用汇编重定向0号中端(除法错误中断,比如,执行div指令产生的除法溢出)
  6. 如何安装zabbix_get
  7. Mysql剖析单条查询三种方法
  8. mysql float 误差_mysql下float类型使用一些误差详解
  9. pandas数据聚合与分组
  10. ssh协议是osi_你见过这份864页神仙级的TCP/IP协议吗?,太香了!
  11. Linux下把U盘格式化为fat32
  12. 数据库连接池为啥要用 ThreadLocal?不用会怎么样?
  13. 1. PSR-1 --- 基本代码规范
  14. 车辆出厂信息接口_最新10项中标招标信息汇总2020.12.7
  15. wincc7.4安装记录
  16. 人人开源的遇到的错误
  17. 交互设计-手机端原型尺寸规范
  18. 微pe添加网络组件_(已解决)干掉peset后如何启动PE的网络组件?
  19. 编译ffmpeg报错ffmpeg yasm not found, use --disable-yasm for a crippled build
  20. Power BI桌面版与Online版功能区别

热门文章

  1. 微信公众号申请access_token报错appID无效
  2. java的多态是什么意思_【Java】基础18:什么叫多态?
  3. Power BI分解销售目标
  4. python learning notes(柒)
  5. 紫罗兰永恒花园rust简谱_みちしるべ简谱-紫罗兰永恒花园ed
  6. python fork()创建新的进程,daemon进程
  7. Well-ordered String
  8. PLC1200 模拟量采集
  9. ffmpeg时间戳校正到相同或+1
  10. 类似qvod的流媒体点播服务器架设建议