继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分.

增加如下的接口:

 //增加一个静态的接口.
private OnItemClickListener listener;
public static interface OnItemClickListener {
void onItemClick(View view , int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener;
}

  

在onBindViewHolder中增加如下的代码

     if (listener != null) {
holder.v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClick(v,position);
}
});
}

  

这就好了,是目前能找到的比较简洁的方法了.

在主界面中直接使用就可以了.如下:

        recycleAdapter.setOnItemClickListener(new myRecycleradatper.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Log.e("constr"," " + position);
}
});

  

观看点击后log.e的记录值.

自定义的数据适配器全部代码如下,供参照,虽然不好,但是能用,我也不知啥意思,以后慢慢理解吧:

public class myRecycleradatper extends RecyclerView.Adapter<myRecycleradatper.MyViewHolder> {
private List<filelist> mDatas;
private Context mContext;
private LayoutInflater inflater; //增加一个静态的接口.
private OnItemClickListener listener;
public static interface OnItemClickListener {
void onItemClick(View view , int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener;
} public myRecycleradatper(Context context, List<filelist> datas){
this. mContext=context;
this. mDatas=datas;
inflater=LayoutInflater. from(mContext);
} @Override
public int getItemCount() {
return mDatas.size();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.item_view,parent, false);
MyViewHolder holder= new MyViewHolder(view); return holder;
} @Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
filelist da=mDatas.get(position);
if(position%2==0){
//holder.tv.setBackgroundColor(Color.BLUE);
holder.v.setBackgroundColor(Color.GRAY);
}
if (listener != null) {
holder.v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClick(v,position);
}
});
}
holder.tv.setText(da.getName());
holder.msg.setText(da.getZt()); } class MyViewHolder extends RecyclerView.ViewHolder{
TextView tv;
TextView msg;
View v;
public MyViewHolder(View view) {
super(view);
tv=(TextView) view.findViewById(R.id.txt_xs);
msg=(TextView)view.findViewById(R.id.txt_msg);
v=view;
} }
}

  

android studio中使用recyclerview小白篇(三)的更多相关文章

  1. android studio中使用recyclerview小白篇(二)

    前面一个说了怎么把这个包引用进来,这一节说怎么做一个简单的例子出来,我也是照着别人的例子写的,然后慢慢改就行了,做好的效果如下图 1.在我们的activity_main中把recyclerview填加 ...

  2. android studio中使用recyclerview小白篇(四)

    经过努力,我们的recyclerview终于可以使用了,但是装配上真实的数据后,发现左边的内容太长了,如果超过一行,左边内容和右边的内容竟然重叠在一起了,好是让人心塞啊,如下图 后来发现设置左边tex ...

  3. android studio中使用recyclerview小白篇(一)

    本人就是小白,昨天在使用listview时,看到说有更好的控件出来了,在V7包中,需要SDK21及以上,那就试着用用吧,今天试了一天,终于弄的能简单使用了,分享一下. 怎么导入这个recycleyvi ...

  4. android studio中使用recyclerview制作个显示考勤打卡的日历来

    1. 用户在app端选择个日期就能查询这个月的考勤打卡信息,并以日历上标注不同的颜色来显示给用户,当然这个日历是recyclerview做出来的,只是每行显示7个,表示一周的七天. 2. 员工考勤打卡 ...

  5. Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用

    在上一篇文章Android IPC机制(二)用Messenger进行进程间通信中我们介绍了使用Messenger来进行进程间通信的方法.可是我们能发现Messenger是以串行的方式来处理client ...

  6. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  7. Android studio 中引用jar的其实是Maven?(一)

    由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显 ...

  8. [Android Studio] Android Studio中查看类的继承关系

    转载自:http://blog.csdn.net/hyr83960944/article/details/38098091 查看类的继承关系的快捷键F4,在Android Studio常用快捷键这篇文 ...

  9. Android Studio中查看类的继承关系

    查看类的继承关系的快捷键F4.在Android Studio经常使用快捷键这篇文章中.有写了.今天主要是讲一些关于这个快捷键出来的界面的一些配置.这块功能相对偏冷一些,可能非常多人都会用不到.可是关于 ...

随机推荐

  1. ubuntu上安装Adminer

    Apache 安装 $ sudo apt-get install apache2 php 安装 $ sudo apt-get install php7.0 $ sudo apt-get install ...

  2. hdu 5706 GirlCat(BFS)

    As a cute girl, Kotori likes playing ``Hide and Seek'' with cats particularly. Under the influence o ...

  3. thread_local变量

    thread_local变量是C++ 11新引入的一种存储类型.它会影响变量的存储周期(Storage duration),C++中有4种存储周期: automatic static dynamic ...

  4. C++对Lua中table进行读取、修改和创建

    C++代码: // LuaAndC.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #i ...

  5. IT_Qestion

    1. Javascript 回调 Promise 2. Angularjs $parent 3. CSS margin padding border 4. Angularjs $filter 5. D ...

  6. 7.solr学习速成之facet

    Facet 介绍   Facet 是 solr 的高级搜索功能之一 ,可以给用户提供更友好的搜索体验,在搜索关键字的同时 , 能够按照 Facet 的字段进行分组并统计.        比如你上淘宝, ...

  7. JavaScript之BON

    1.windows对象 全局作用域: 2.窗口关系及框架 如果页面包含框架,则每个框架都有自己的window对象,并且保存在iframes集合中,在iframe集合中,可以通过数值索引(从0开始,从左 ...

  8. python文件处理-读、写

    Python中文件处理的操作包括读.写.修改,今天我们一起来先学习下读和写操作. 一.文件的读操作 例一: #文件读操作 f = open(file="first_blog.txt" ...

  9. 配置Linux的SSH双重认证

    背景:双因子认证(简称:2FA,以下简称2FA),在这里其为SSH的第二重认证.2FA指的是密码以及实物(信用卡.SMS手机.令牌或指纹等生物标志)两种条件对用户进行认证的方法.通过两种不同的认证程序 ...

  10. libevent源码深度剖析六

    libevent源码深度剖析六 ——初见事件处理框架 张亮 前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析 lib ...