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

完整代码在这里

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

 //自定义点击接口类    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的点击事件接口

 @Override    public void onClick(View view) {       //回调点击事件        ViewHolder holder = (ViewHolder) view.getTag(R.id.fruite_holder);        if (mOnItemClickLitener != null) {            this.mOnItemClickLitener.onItemClick(view, holder.getAdapterPosition());        }    }    @Override    public 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() {                    @Override                    public void onItemClick(View view, int position) {                        //单击事件,例如跳转页面                         Object object = list.get(position);                        Intent intent = new Intent(getActivity(),OtherActivity.class);                        startActivity(intent);                    }                                       @Override                    public 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() {                            @Override                            public void onClick(DialogInterface dialogInterface, int i) {                                Intent intent;                                switch (i) {                                    case 0://删除item                                        startEditName(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 implements View.OnClickListener, View.OnLongClickListener {    private Context myContext;    private List fruiteList;    private OnItemClickLitener mOnItemClickLitener;    //构造方法    public FruiteAdapter(List fruiteList) {        this.fruiteList = fruiteList;    }    //设置setmOnItemClickLitener的set方法    public void setmOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) {        this.mOnItemClickLitener = mOnItemClickLitener;    }    @Override    public 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里的value        view.setOnClickListener(this);view.setOnLongClickListener(this);        return holder;    }    @Override    public void onBindViewHolder(FruiteAdapter.ViewHolder holder, int position) {        Fruite fruite = fruiteList.get(position);        holder.fruiteName.setText(fruite.getFruitrName());       // holder.fruiteInfo.setText(fruite.getFruiteInfo());    }    @Override    public 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);    }    @Override    public void onClick(View view) {       //回调点击事件        ViewHolder holder = (ViewHolder) view.getTag(R.id.fruite_holder);        if (mOnItemClickLitener != null) {            this.mOnItemClickLitener.onItemClick(view, holder.getAdapterPosition());        }    }    @Override    public 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);    }}

三、部分界面

更多相关文章

  1. Android中对话框(Dialog)的创建方法
  2. Android改变ExpandableListView的indicator图标实现方法
  3. [Android] 安卓开启WIFI热点代码 以及6.0开启热点报错/异常解决
  4. android学习记录(三) UI界面
  5. SDL2库(3)-Android(安卓)端源码简要分析(VideoSubSystem)
  6. Android窗口机制之由setContentView引发的Window,PhoneWindow,Deco
  7. Android完全关闭应用程序
  8. Android官方架构组件ViewModel+LiveData+DataBinding架构属于自
  9. Android(安卓)8.1 来电默认全屏显示 如何修改

随机推荐

  1. Android 音乐播放器的开发教程(一) -----
  2. 王家林最受欢迎的一站式云计算大数据和移
  3. Android开发――记账App开发项目分享(一)之
  4. [置顶] Android重难点解析——面试中可能
  5. Android(安卓)Bitmap优化
  6. 关于android分辨率兼容问题(一)
  7. Android 音乐播放器的实现(一)自定义按钮的
  8. Android笔试或者面试的几个题目
  9. Android小項目之--電話與短信服務(附源碼)
  10. Android Sensor详解(7)sensor framework层