Android 中RecycleView实现item的点击事件
作者:yanglei0917 发布时间:2023-10-21 18:59:13
标签:Android,RecycleView,item
Android 中RecycleView实现item的点击事件
RecycleView现在已经越来越受到大家的重视,因为他既可以代替listView还可以代替GridView,但是RecycleView本身不不像ListView那样具有setOnItemClickListener,这个关于子item的点击,但是我们往往会用到RecycleView并且希望他的自孩子可以被点击,那么如何实现他的item的点击事件呢?
首先我们在RecyclerView.ViewHolder中的实现:
public class GridViewHolder extends RecyclerView.ViewHolder implements OnClickListener{
//声明MyItemClickListener
private MyItemClickListener mListener;
public GridViewHolder(View rootView,MyItemClickListener listener) {
super(rootView);
this.mListener = listener;
rootView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//如果mListener不为空,就实现接口中的方法onItemClick其中getPosition()是得到被点击位置的position
if(mListener != null){
mListener.onItemClick(v,getPosition());
}
}
//声明MyItemClickListener这个接口
public interface MyItemClickListener {
public void onItemClick(View view,int postion);
}
}
最后在RecyclerViewAdapter中实现:
package com.ledon.activity.adapter;
import Java.util.ArrayList;
import java.util.List;
import com.ledon.activity.adapter.GridViewHolder.MyItemClickListener;
import com.ledon.ledongym.R;
import com.lidroid.xutils.BitmapUtils;
import Android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
public class RecyclerViewAdapter extends RecyclerView.Adapter<GridViewHolder> {
private final List<String> labels;
private LayoutInflater mLayoutInflater;
private Context context;
private MyItemClickListener mItemClickListener;
public RecyclerViewAdapter(int count, Context context) {
this.labels = new ArrayList<String>(count);
mLayoutInflater = LayoutInflater.from(context);
for (int i = 0; i < count; i++) {
labels.add(String.valueOf(i));
}
}
@Override
public int getItemCount() {
return labels.size();
}
@Override
public void onBindViewHolder(GridViewHolder viewHolder, int position) {
viewHolder.itemView.setTag(labels.get(position));
}
@Override
public GridViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
view = mLayoutInflater.inflate(R.layout.item_userinfo, parent, false);
//通过构造函数将mItemClickListener
GridViewHolder holder = new GridViewHolder(view, mItemClickListener);
return holder;
}
/**
* 设置Item点击监听
*
* @param listener
*/
public void setOnItemClickListener(MyItemClickListener listener) {
this.mItemClickListener = listener;
}
}
最后在activity中
//根据adapter来设置item的点击事件
recyclerViewAdapter.setOnItemClickListener(new MyItemClickListener() {
@Override
public void onItemClick(View view, int postion) {
}
});
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/yanglei0917/article/details/52227976


猜你喜欢
- 首先!首先!首先!首先,我们由于历史问题,项目用的UI编辑器不是大众使用的GUI或者NGUI, 而是使用不知道算不算小众的FairyGUI,
- 目录1、Java 语言中创建一个对象使用的关键字是()2、创建一个标识有“关闭”标签的语句是 ( ) 。3、When is the text
- 本文演示的是Spring中使用AspectJ注解和XML配置两种方式实现AOP下面是使用AspectJ注解实现AOP的Java Projec
- Condition是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean操作。思考:SpringBoo
- 使用NOPI导入Excel文档NOPI版本:2.3.0,依赖于NPOI的SharpZipLib版本:0.86,经测试适用于.net4.0+记
- 实现android双击后退键退出当前APP功能实现该功能基本思路是,1, 监听后退键 , 比较两次后退间隔 , 低于两秒则出发退出2, 退出
- Java中的Runable,Callable,Future,FutureTask,ExecutorService,Excetor,Excut
- RateLimiter官方文档RateLimiter令牌桶原理图随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是1
- 今天导入了一个模型,但是模型贴图丢失了,而且Inspector面板中处于不能编辑的状态虽然可以通过重新创建材质来替换,但是这样会生成一个新的
- Flutter中的生命周期类似于Vue、React中的生命周期一样,有初始化、状态更新、停用、销毁等。在React中,组件分为函数式组件和类
- 本文主要介绍在SpringMVC框架整合Junit框架进行单元测试。闲话少述,让我们直入主题。系统环境软件版本spring-webmvc4.
- 这篇文章主要介绍了Java如何利用return结束方法调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- class文件中的常量池之前我们在讲class文件的结构时,提到了每个class文件都有一个常量池,常量池中存了些什么东西呢?字符串常量,类
- System.Threading.Mutex :同步基元,它只向一个线程授予对共享资源的独占访问权。实现原理: 在程序启动时,请求一个互斥体
- 我们可以试想ImageView能显示图片,而VideoView就是用来显示视频的。使用VideoView播放视频的步骤如下 【1】在界面布局
- spring xml中配置视图如果是如下<property name="defaultViews"><
- 最近好多app都已经满足了沉浸式通知栏, 所谓沉浸式通知栏:就是把用来导航的各种界面操作空间隐藏在以程序内容为主的情景中,通过相对“隐形”的
- 做侧滑删除网上有很多方案,比如重写Listview实现滑动的监听,今天说下一个SwipeListView,这个是之前一个朋友在网上开源的一个
- 1、 如何给节点添加图片? 首先需要添加一个图片控件,然后给它加入图片,最后把TreeList的节点图片属性和图片控件绑定,代码如下:Ima
- 双保险线程,每次启动2个相同的线程,互相检测,避免线程死锁造成影响。两个线程都运行,但只有一个线程执行业务,但都会检测对方的时间戳 如果时间