案例:点击跳转页面,长按弹窗,点击删除。

完整代码在这里

首先,写好点击事件的接口类

 //自定义点击接口类public interface OnItemClickLitener {//点击事件void onItemClick(View view, int position);//长按事件void onItemLongClick(View view, int position);}

一、步骤
(1)在Adapter中写一个item的点击事件接口,Adapter中设置该接口,并给其一个set方法

//申明接口private OnItemClickLitener mOnItemClickLitener;
//设置setmOnItemClickLitener的set方法public void setmOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) {this.mOnItemClickLitener = mOnItemClickLitener;}

(2)Adapter类实现 View.OnClickListener, View.OnLongClickListener接口,并实现其方法。实现接口的方法中,回调item的点击事件接口

 @Overridepublic void onClick(View view) {//回调点击事件ViewHolder holder = (ViewHolder) view.getTag(R.id.fruite_holder);if (mOnItemClickLitener != null) {this.mOnItemClickLitener.onItemClick(view, holder.getAdapterPosition());}}@Overridepublic boolean onLongClick(View view) {//回调长按事件ViewHolder holder = (ViewHolder) view.getTag(R.id.fruite_holder);if (mOnItemClickLitener != null) {this.mOnItemClickLitener.onItemLongClick(view, holder.getAdapterPosition());}return false;}

(3)在Activity中调用方法

Adapter.setmOnItemClickLitener(new ExcelAdapter.OnItemClickLitener() {@Overridepublic void onItemClick(View view, int position) {//单击事件,例如跳转页面Object object = list.get(position);Intent intent = new Intent(getActivity(),OtherActivity.class);startActivity(intent);}@Overridepublic void onItemLongClick(View view, final int position) {//长按事件,弹窗Object object = list.get(position);final String[] items = { "删除"};android.app.AlertDialog.Builder listDialog = new android.app.AlertDialog.Builder(getActivity());listDialog.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Intent intent;switch (i) {case 0://删除itemstartEditName(table);break;default:break;}}});listDialog.show();}});

二、主要代码
adapter的完整代码

package com.example.lj.sqlapp;import android.content.Context;
import android.media.Image;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;import java.text.SimpleDateFormat;
import java.util.List;/*** 2018-9-5*/
public class FruiteAdapter extends RecyclerView.Adapter<FruiteAdapter.ViewHolder> implements View.OnClickListener, View.OnLongClickListener {private Context myContext;private List<Fruite> fruiteList;private OnItemClickLitener mOnItemClickLitener;//构造方法public FruiteAdapter(List<Fruite> fruiteList) {this.fruiteList = fruiteList;}//设置setmOnItemClickLitener的set方法public void setmOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) {this.mOnItemClickLitener = mOnItemClickLitener;}@Overridepublic FruiteAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {if (myContext == null) {myContext = parent.getContext();}View view = LayoutInflater.from(myContext).inflate(R.layout.item_list, parent, false);ViewHolder holder = new FruiteAdapter.ViewHolder(view);view.setTag(R.id.fruite_holder,holder);//注意这里,对应values/ids.xml里的valueview.setOnClickListener(this);view.setOnLongClickListener(this);return holder;}@Overridepublic void onBindViewHolder(FruiteAdapter.ViewHolder holder, int position) {Fruite fruite = fruiteList.get(position);holder.fruiteName.setText(fruite.getFruitrName());// holder.fruiteInfo.setText(fruite.getFruiteInfo());}@Overridepublic int getItemCount() {return fruiteList.size();}public void addData(int position, Fruite fruite) {fruiteList.add(position, fruite);notifyItemInserted(position);}public void removeData(int position) {fruiteList.remove(position);notifyItemRemoved(position);}@Overridepublic void onClick(View view) {//回调点击事件ViewHolder holder = (ViewHolder) view.getTag(R.id.fruite_holder);if (mOnItemClickLitener != null) {this.mOnItemClickLitener.onItemClick(view, holder.getAdapterPosition());}}@Overridepublic boolean onLongClick(View view) {//回调长按事件ViewHolder holder = (ViewHolder) view.getTag(R.id.fruite_holder);if (mOnItemClickLitener != null) {this.mOnItemClickLitener.onItemLongClick(view, holder.getAdapterPosition());}return false;}public class ViewHolder extends RecyclerView.ViewHolder {private CardView careView;private TextView fruiteName;private TextView fruiteInfo;private ImageView fruiteImg;public ViewHolder(View itemView) {super(itemView);fruiteImg = itemView.findViewById(R.id.card_fruit_image);fruiteName = itemView.findViewById(R.id.card_fruit_name);}}//自定义点击接口类public interface OnItemClickLitener {void onItemClick(View view, int position);void onItemLongClick(View view, int position);}
}

三、部分界面

Android中RecyclerView的长按相关推荐

  1. Android中RecyclerView嵌套RecyclerView或嵌套ListView

    Android中RecyclerView嵌套RecyclerView或嵌套ListView

  2. Android中RecyclerView点击item展开列表详细内容(超简单实现)

    请注明出处: http://blog.csdn.net/qq_23179075/article/details/79230457 Android中RecyclerView点击item展开列表详细内容( ...

  3. android 中RecyclerView 嵌套了 GridView 的用法

    提醒一下 RecyclerView 安卓自带的当中是没有的,所以需要导入包的. android.support.v4.widget.SwipeRefreshLayout 中的v7,v4都已经变成 an ...

  4. android中RecyclerView的使用

    1. RecyclerView概述 Android提供了一个更强大的滚动控件--RecyclerView. 它可以说是一个增强版的ListView, 不仅可以轻松实现和ListView同样的效果, 还 ...

  5. Android中 RecyclerView的回收复用机制

    作者:金大人的梦 转载地址:https://juejin.cn/post/7094497660983312397 问题归类: 什么是回收?什么是复用? 回收什么?复用什么? 回收到哪里去?从哪里获得复 ...

  6. Android中设置RecyclerView的每一个item的单项点击事件

    场景 Android中使用Adapter(适配器)给RecycleView设置数据源: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  7. android listview 滑动条显示_第七十六回:Android中UI控件之RecyclerView基础

    各位看官们,大家好,上一回中咱们说的是Android中UI控件之ListView优化的例子,这一回咱们说的例子是UI控件之RecyclerView.闲话休提,言归正转.让我们一起Talk Androi ...

  8. Android中当item数量超过一定大小RecyclerView高度固定

    Android中当item数量超过一定大小时,将RecyclerView高度固定 方法1 直接通过LayoutParams来设定相应高度 ViewGroup.LayoutParams lp = rv. ...

  9. android自定义起止时间的时间刻度尺,Android中自定义RecyclerView如何实现不固定刻度的刻度尺...

    Android中自定义RecyclerView如何实现不固定刻度的刻度尺 发布时间:2020-07-17 16:50:28 来源:亿速云 阅读:116 作者:小猪 这篇文章主要讲解了Android中自 ...

最新文章

  1. 如何把opencv编译到matlab,c – 为OpenCV编译MATLAB绑定
  2. 初识Tcl(十一):Tcl 命名空间
  3. 以字符串数组为输入参数的存储过程
  4. numpy/arrayobject.h”: No such file or directory
  5. jquery和bottstrap
  6. 手机轮廓光怎么拍_想拍美秋天叶子,别犯这5个初级错误!告诉错在哪里及咋拍正确...
  7. 201521145048《Java程序设计》第11周学习总结
  8. 漫游飞行_手机“飞行模式”为何没被淘汰?内行人坦言:其实是你不会用!
  9. 在学术论文投稿时你遇到过最奇葩的审稿意见是什么?
  10. SQuirreL SQL Client3.8 连接 HIVE2.2
  11. python函数示例_带Python示例的complex()函数
  12. 高效能人士的七个习惯_有史以来最具影响力管理类书籍 高效能人士的七个习惯 让你成为一名成功高效的人士...
  13. quarts集群 运维_精讲Elastic-job + Quartz实现企业级定时任务
  14. Java实现校园论坛系统
  15. android 视频播放器框架 [饺子播放器](https://github.com/Jzvd/JiaoZiVideoPlayer) 源码解析与评估
  16. 基于单片机的水温液位自动控制系统设计
  17. java节假日算法_java节假日
  18. can和could的用法_can和could的区别和用法
  19. uc浏览器黑莓java下载安装_(黑莓软件)黑莓最新版UC浏览器下载安装!8.1最新版UC浏览器!...
  20. java面试-jvm

热门文章

  1. 广告配音和电影配音有什么区别
  2. 运维(2)运维的主要工作内容
  3. ubuntu20.04入门----安装QQ,微信,搜狗等
  4. 无限乱斗机器人ap出装_2019英雄联盟无限火力ap机器人出装攻略 英雄联盟无限火力ap机器人玩法一览...
  5. ok6410linux开发环境搭建,飞凌嵌入式知识汇021期:OK6410裸机程序之开始模板(Linux环境)...
  6. 新资料丨飞凌嵌入式A40i及全志T3系列开发板 对CAN的支持补充
  7. 一键生成工资条,并根据不同部门/地区分类命名
  8. MT8167处理器型号对比,MT8167芯片资料介绍
  9. linux单位转换,用windows和Linux下的单位转换工具ConvertAll解中学物理题
  10. R语言使用lm函数构建具有交互项的回归模型、使用:号(冒号)表示变量的交互(冒号为纯乘法、不包含乘法的构成项)