在RecyclerView设置监听事件
来源:互联网 发布:java multieditor 编辑:程序博客网 时间:2024/05/18 12:43
1.为什么在RecyclerView取消掉了Listview里的OnItemClickListner事件,
简单来说就是因为ListView里的OnItemClickListner与OnClickListner
发生了冲突,OnItemClickListner无法解决多种多样的事件,
所以在Recycerview里面便去掉了OnitemClickListner的方法
2.如何给Recycerview添加监听事件???
一般可以想到的方法有两种,关键的关键就是如何去获取position,第一种方法就是在适配器里面getPosition(),但是这个getPosition()已经过时了,但还有一种方法,对外实现接口,下面就是这个封装了的工具类的代码:
package com.example.com.mlsdome.Activity.Util;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.View;/** * Created by 12697 on 2017/3/19. */public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener{ private OnItemClickListener mListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildPosition(childView)); return true; } return false; } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { }}
剩下的就简单了
md_rView.addOnItemTouchListener(new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { switch (position) { case 0: Intent intent=new Intent(MatchDetailsActivity.this,WebViewActivity.class); intent.putExtra("url","http://www.myexception.cn/mobile/1952989.html"); startActivity(intent); break; } }}));
OK,到这里就完成了
0 0
- 在RecyclerView设置监听事件
- RecyclerView的Item设置点击监听事件
- RecyclerView的事件监听
- RecyclerView监听事件
- Android 为Recyclerview添加滚动监听事件,以及为它每一个item设置点击监听事件
- recyclerview的适配器+监听事件
- RecyclerView的条目监听事件
- recyclerview点击事件设置
- AndroidStudio GradView在RecyclerView中设置条目(Item)点击事件
- 通过接口回调方式来设置RecyclerView的条目点击监听事件
- 设置点击监听事件
- RecyclerView之瀑布流的事件监听
- recyclerview之item点击事件监听
- 在android 中利用button 按钮设置监听事件
- 在Activity/Fragment中设置搜索键的监听事件
- RecyclerView设置Item点击事件
- RecyclerView设置 item点击事件
- RecyclerView item 点击事件设置
- 《前端工程化之NPM》
- 多线程_线程池的概述和使用
- 速度
- iOS 绘制折线
- Intent和Activity
- 在RecyclerView设置监听事件
- kali安装中文输入法
- c 函数的初使用
- android源码解析(5)--AsyncTask源码分析以及使用中的坑
- ACM程序设计书上题目小总结
- 【程序2】奖金根据利润提成
- MQTT 移植STM32+GPRS(串口透传)(四)
- 找出栈中最小元素 の 双栈实现
- 《ACM程序设计》-Problem-M-二倍问题