android实现RecyclerView列表单选功能
"android实现RecyclerView列表单选功能" Android中的RecyclerView列表单选功能是指在RecyclerView列表中实现单选功能,即用户只能选择列表中的一个item。下面详细介绍了实现RecyclerView列表单选功能的方法。 xml布局文件 在xml布局文件中添加一个选中效果的icon图片,可以使用ImageView控件,未选中的情况下可以使用INVISIBLE或者GONE,但是推荐使用INVISIBLE,因为它会占用布局位置但是不显示,这样可以避免布局中其他控件因为勾选布局的消失而轻微变动位置。 ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/DeviceList_Layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="20dp"> <ImageView android:id="@+id/DeviceList_ImageView" android:layout_width="50dp" android:layout_height="wrap_content" android:src="@mipmap/preview_image_boy" android:layout_gravity="center"/> <TextView android:id="@+id/DeviceList_NameText" android:layout_width="200dp" android:layout_height="wrap_content" android:text="名称" android:textSize="@dimen/BigTextSize" android:textColor="@color/colorBlue" android:layout_gravity="center" android:layout_marginLeft="20dp" android:maxLines="1"/> <ImageView android:id="@+id/DeviceList_Select" android:layout_width="50dp" android:layout_height="wrap_content" android:src="@mipmap/ic_select" android:visibility="invisible" android:layout_marginLeft="10dp" android:layout_gravity="center"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="1px" android:background="@color/colorBlue" android:layout_marginLeft="20dp" android:layout_marginRight="20dp"> </LinearLayout> </LinearLayout> ``` 适配器类 在适配器类中,需要重写onCreateViewHolder和onBindViewHolder方法。onCreateViewHolder方法中添加按键监听,onBindViewHolder方法中重写添加判断点击的位置。 ```java public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<String> mData; public MyAdapter(List<String> data) { this.mData = data; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { String item = mData.get(position); holder.textView.setText(item); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 点击事件处理 } }); } @Override public int getItemCount() { return mData.size(); } static class ViewHolder extends RecyclerView.ViewHolder { TextView textView; ImageView imageView; public ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.DeviceList_NameText); imageView = itemView.findViewById(R.id.DeviceList_Select); } } } ``` 实现单选功能 在适配器类中添加单选功能,可以使用一个整数变量来记录当前选中的position,点击item时判断当前position是否与记录的position相同,如果相同则取消选中,否则选中当前item,并更新记录的position。 ```java private int currentPosition = -1; @Override public void onBindViewHolder(ViewHolder holder, int position) { String item = mData.get(position); holder.textView.setText(item); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (currentPosition == position) { // 取消选中 holder.imageView.setVisibility(View.INVISIBLE); currentPosition = -1; } else { // 选中当前item holder.imageView.setVisibility(View.VISIBLE); currentPosition = position; } } }); } ``` 通过上面的方法可以实现RecyclerView列表单选功能,选中时显示选中效果的icon图片,未选中时隐藏icon图片,点击item时判断当前position是否与记录的position相同,以实现单选功能。



















- 粉丝: 17
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数据库设计基础精PPT课件.ppt
- 电子商务系统建设与运营方案模板.doc
- 考勤管理系统软件说明书需求.doc
- 基于微服务架构的基础设施设计.pdf
- 无线网络IP冲突应该如何解决?.docx
- 网站最佳推广方案.doc
- 通大公司网站建设方案.doc
- 基于PLC电子计算器课程设计.doc
- access教学计划.pdf
- 一套完整的网站运营推广方案.docx
- 网络系统管理与维护--试题.doc
- 全国计算机信息高新技术考试技能培训和鉴定工作手册.doc
- 微信小程序配套微信管理后台与用户前台系统
- 营销型企业网站诊断培训教材.pptx
- 中国电信协同通信客户服务手册.doc
- 全国高等教育自学考试《软件开发工具》第一章-.ppt


