在ListView中嵌套Switch开关,点击ListView条目来切换Switch的状态
在ListView中添加Switch,让用户去点那个小小的开关的话体验不太好,通过点
击ListView的条目来改变Switch的开关状态.
目标效果
点击测试即可切换第一行的Swith的开关状态
需要注意的是正常添加的话Switch会屏蔽掉ListView的onItemClick事件,需要在Switch的布局文件中添加
android:focusable=“false”
否则将无法点击ListView的条目
MainActivity
public class MainActivity extends AppCompatActivity {private ListView lv;private Adapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv=(ListView)findViewById(R.id.lv);adapter=new Adapter(MainActivity.this);adapter.addItem("测试");adapter.addItem("测试1");adapter.addItem("测试2");lv.setAdapter(adapter);lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Switch aSwitch=adapter.getaSwitch(i);if(aSwitch.isChecked()){aSwitch.setChecked(false);//进行业务处理}else {aSwitch.setChecked(true);//进行业务处理}}});}
}
ListView适配器
public class Adapter extends BaseAdapter {private List<String> list_title;private List<Switch> list_switch;private Context mContext;private TextView tv;private Switch aSwitch;public Adapter(Context context) {mContext=context;list_title=new ArrayList<>();list_switch=new ArrayList<>();}public void addItem(String title){list_title.add(title);}public Switch getaSwitch(int position){return list_switch.get(position);}@Overridepublic int getCount() {return list_title.size();}@Overridepublic Object getItem(int i) {return list_title.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {view= LayoutInflater.from(mContext).inflate(R.layout.item,null);tv=(TextView)view.findViewById(R.id.tv);aSwitch=(Switch)view.findViewById(R.id.aSwitch);list_switch.add(aSwitch);tv.setText(list_title.get(i));return view;}
}
MainAvtivity的布局文件只有一个ListView
需要注意的是ListView条目的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv"android:padding="10dp"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Switchandroid:id="@+id/aSwitch"android:focusable="false"android:clickable="false"android:padding="10dp"android:layout_alignParentRight="true"android:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>
在条目布局文件中将Switch的clickable也关闭是为了方便操作,处理开关事件只需要在ListView的itemClickListener中进行,无需再在Switch的onClickListener中再进行一次.
源码下载地址
https://download.csdn.net/download/woqq863787405/13637053
蓝奏:https://wwa.lanzous.com/iXFEOj9eh2b
最后,我只是安卓的新手,如有错误或更好的方法,欢迎大家在评论区进行讨论.
在ListView中嵌套Switch开关,点击ListView条目来切换Switch的状态相关推荐
- ListView中嵌套checkbox实现多选
我现在要实现一个多选的ListView,当选择ListView中的checkbox的时候,可以将选中的多个checkbox所代表的值保存到数据库中!哪位高手做过类似的东西,给小弟指教指教,十分感谢! ...
- Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法
在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...
- 小程序点击显示隐藏(点击标题,内容显示,再次点击隐藏,同时切换箭头的状态,且默认第一组的内容显示)
哈喽,大家下午好,时间过的真快,转眼啊又好长时间没写博客啦,嘿嘿最近公司比较忙,手上一直有项目需要处理,现在终于空闲了一点,赶快来一篇呀,嘿嘿~ 最近我一直在做小程序的项目,其中值得一提的是项目中有一 ...
- Android listview 中嵌套 listview
在 父listview中 adapter的 getview 中 设置 子listview 的 adapter 之后 添加下面方法,传入子listview. public void setListVie ...
- switch开关点击无效的解决办法:element中switch v-model绑定的值为数字类型情形
在用到el-switch组件时,需要绑定数据为number类型,但总也绑不成功 element官方文档上说:设置该组件的active-value和inactive-value属性,可接受Boolean ...
- android ListView中含有按钮事件实时更新ListView数据案例-1
1.布局文件Listview <?xml version="1.0" encoding="utf-8"?> <android.support. ...
- listview头部嵌套RecyclerView 完美实现竖向listview头部为横向listview
demo下载地址找了很多资料,在eclipse里面使用recyclview..完美实现头部是一个横向recyclview,竖向是listview. demo下载链接
- Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
我的活动包含一个按钮和一个ListView. ListView包含Spinner和EditText视图.每次我想在Activity的ListView中插入一个新的行条目时,我都会使用该按钮. 我遵循了 ...
- android listview中item通过viewpager实现
android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...
最新文章
- 第2关:CLA182四位先行进位电路设计
- 机器学习(Machine Learning)深入学习(Deep Learning)资料
- CENTOS7 Python3.7安装pip模块以及pip使用
- Python中机器学习的特征选择工具
- raid5坏了一块盘怎么办_机械硬盘的坏道处理——屏蔽之
- oracle零碎要点---oracle em的web访问地址忘了
- 管理对象空间——管理存储参数
- 微信公众号模板消息 access_token missing
- VMware安装Ubuntu配置NAT模式下静态IP,解决访问外网问题
- TSC条码打印机常见故障及解决方法
- python贪吃蛇游戏无法运行_Python贪吃蛇游戏编写代码
- 上拉查看详情和下拉隐藏详情
- 阿里云产品介绍(一):云服务器ECS
- 为什么顶级程序员都有超强逆商?顶级程序员马化腾在艰难的时候,是如何度过的?
- 5款最好的安卓界面设计工具推荐
- 广东海洋大学微型计算机控制技术,LCD显示实验(综合性)
- 图片url显示服务器,服务器上图片的url地址
- 4.15 使用渐变映射命令制作艺术效果 [原创Ps教程]
- 学生成绩录入案例----python基础入门
- Sublime 中快速打开网页