1.0 在各布局的基础上,修改ProvinceAdapter.java的代码:

package com.example.recyclerviewtest;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast; import java.util.List; public class ProvinceAdapter extends RecyclerView.Adapter<ProvinceAdapter.ViewHolder> {
private List<Province> mProvinceList;
private int resourceId; // 定义一个内部类ViewHolder,该类继承自RecyclerView.ViewHolder。
// 需要传入一个View参数,通常是RecyclerView子项最外层布局
static class ViewHolder extends RecyclerView.ViewHolder {
// ImageView provinceImage;
TextView provinceName;
View provinceView; public ViewHolder(View view) {
super(view);
provinceView = view;
provinceName = (TextView) view.findViewById(R.id.province_name);
}
} // 该构造函数作用是将数据源赋值给一个全局变量mProvinceList
public ProvinceAdapter(List<Province> provinceList) {
mProvinceList = provinceList;
} // 由于ProvinceAdapter是继承自RecyclerView.Adapter,
// 所以需要重写三个方法:
// onCreateViewHolder() :创建ViewHolder实例,将局部加载进来
// onBindViewHolder() :对RecyclerView子项数据进行赋值
// getItemCount() @Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.province_item,
viewGroup,
false);
final ViewHolder holder = new ViewHolder(view);
holder.provinceView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
Province province = mProvinceList.get(position);
Toast.makeText(v.getContext(), "你点击了项" + province.getName(), Toast.LENGTH_SHORT).show();
}
}); return holder;
} @Override
public void onBindViewHolder(ViewHolder holder, int position
) {
Province province = mProvinceList.get(position);
holder.provinceName.setText(province.getName());
} @Override
public int getItemCount() {
return mProvinceList.size();
}
}

2.0 列表控件RecyclerView没有提供直接可以调用的注册监听事件,需要我们给子项具体的View去注册点击事件。优点是可以在某一个子项中,点击其中的某个图片、字段、按钮等,而不像setOnItemClickListener()方法那样只能选择子项本身。

【Android】16.0 UI开发(七)——列表控件RecyclerView的点击事件实现的更多相关文章

  1. 【Android】15.0 UI开发(六)——列表控件RecyclerView的网格布局排列实现

    1.0 列表控件RecyclerView的网格布局排列实现,关键词GridLayoutManager. LinearLayoutManager 实现顺序布局 GridLayoutManager 实现网 ...

  2. 【Android】14.0 UI开发(五)——列表控件RecyclerView的瀑布布局排列实现

    1.0 列表控件RecyclerView的瀑布布局排列实现,关键词StaggeredGridLayoutManager LinearLayoutManager 实现顺序布局 GridLayoutMan ...

  3. 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法

    实际使用MVVM进行WPF开发的时候,可能会用到列表控件中每行一个编辑或删除按钮,这时直接去绑定,发现无法响应: <DataGridTemplateColumn Header="操作& ...

  4. 【Android】13.0 UI开发(四)——列表控件RecyclerView的横向布局排列实现

    1.0 新建项目,由于ListView的局限性,RecyclerView是一种很好取代ListView的控件,可以灵活实现多种布局. 2.0 新建项目RecyclerviewTest,目录如下: 3. ...

  5. Android UI开发之开源控件项目整理

    一.Banner 1.https://github.com/youth5201314/banner Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式.动画.轮播和切换时间. ...

  6. Android UI组件----ListView列表控件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  7. Android listview子控件的的点击事件(转)

    1.先看图,是否是你想要的 2.布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout ...

  8. android 组合控件接收不到点击事件的问题

    android点击事件的传播是有子控件传给父控件,如果子控件处理过了,父控件不再处理,所以要想让组合控件接收点击事件,必须屏蔽子控件的点击事件. 设置组合控件的clickable和focusable属 ...

  9. 解决ListView中Item的子控件与Item点击事件冲突

    常常会碰到在ListView中点击当中一个Item.会一并触发其子控件的点击事件.比如Item中的Button.ImageButton等.导致了点击Item中Button以外区域也会触发Button点 ...

随机推荐

  1. L01-RHEL6.5中部署NTP(ntp server + client)

    RHEL6.5集群中部署NTP NTP全称为Network Time Protocol,即网络时间协议.一般在Linux系统中用来同步集群中不同机器的时间. 本文描述的ntp服务部署框架如下图示 如上 ...

  2. 洛谷 P3201 [HNOI2009]梦幻布丁(启发式合并)

    题面 luogu 题解 什么是启发式合并? 小的合并到大的上面 复杂度\(O(nlogn)\) 这题颜色的修改,即是两个序列的合并 考虑记录每个序列的\(size\) 小的合并到大的 存序列用链表 但 ...

  3. archlinux安装tftp

    1. 安装  [guo@archlinux ~]$ sudo pacman -S tftp-hpa 2. 启用  [guo@archlinux ~]$ systemctl start tftpd.se ...

  4. scrapy抓取中文后乱码解决方法

    出现这种东西不是乱码,是unicode,只是人看不懂,例如: \u96a8\u6642\u66f4\u65b0> \u25a0\u25a0\u25a 我们把他解码成中文码即可,在settings ...

  5. windows下hla编译环境配置(转)

    原文地址:http://blog.chinaunix.net/uid-20548989-id-1667169.html HLA简介         HLA,英文"High Level Ass ...

  6. 常用sql记录

    一.修改字段默认值 alter table 表名 drop constraint 约束名字   ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约 ...

  7. ImportError: libSM.so.6: cannot open shared object file: No such file or directory

    Solution sudo apt-get install libsm6 Similarly ImportError: libXrender.so.1: cannot open shared obje ...

  8. python 流式游标读取mysql大型数据库

    import asyncio import aiomysql async def dbdaochu(loop): sqlstr='sql' conn = await aiomysql.connect( ...

  9. zookeeper 选举机制 和 eruake

    zookeeper简介: 在分布式环境中,多个服务之间协调一致.有提供分布式锁.服务配置.实现分布式领域CAP(consistency一致性,Availiablity高可用,patition tolr ...

  10. Oracle 分区表(转)

    原文地址:http://love-flying-snow.iteye.com/blog/573303 废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. ...