[安卓开发Android] RecyclerView 类型与点击事件的用法
16lz
2021-01-26
方法一
一、在RecyclerView的Adapyer中定义单击事件的回调接口:
/** * 定义RecyclerView选项单击事件的回调接口 */public interface OnItemClickListener{ //参数(父组件,当前单击的View,单击的View的位置,数据) void onItemClick(RecyclerView parent,View view, int position, String data);}
二、在RecyclerView的Adapyer中声明该接口,并提供setter方法:
private OnItemClickListener onItemClickListener;public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener;}
三、在RecyclerView的Adapyer类实现View.OnClickListener接口,并重写onClick(View view)方法,然后设置给接口的事件监听:
public class RvAdapter1 extends RecyclerView.Adapter<RvAdapter1.DataViewHolder> implements View.OnClickListener{ ... view.setOnClickListener(this);//设置监听器 ... @Override public void onClick(View view) { //根据RecyclerView获得当前View的位置 int position = recyclerView.getChildAdapterPosition(view); //程序执行到此,会去执行具体实现的onItemClick()方法 if (onItemClickListener!=null){ onItemClickListener.onItemClick(recyclerView,view,position,mList.get(position)); } } ...}
注意:此步骤在方法onCreateViewHolder内绑定点击事件
四、在MainActivity中通过Adapter设置每个Item的单击事件:
adapter.setOnItemClickListener(new RvAdapter1.OnItemClickListener() { @Override public void onItemClick(RecyclerView parent, View view, int position, String data) { Toast.makeText(MainActivity.this, data, Toast.LENGTH_SHORT).show(); }});
方法二
在RecyclerView的Adapyer类 初始化控件处 直接写 某个控件的 点击事件
完美结束
更多相关文章
- Android之使用NotificationListenerService使得自己的应用不被杀
- Android之WebView和js交互-调用失败的看这里
- Android每隔几秒做一个动作实现方法
- Android(安卓)在子线程中更新UI的几种方法
- Android(安卓)Internet应用实现获取天气预报的示例代码
- 【转】【Android游戏开发十五】关于Android(安卓)游戏开发中 OnT
- 对Android(安卓)软键盘向下的监听
- EventBus3.0配置及使用
- Android(安卓)Aidl 的使用方法