RecyclerView點選事件
阿新 • • 發佈:2018-11-30
有關RecyclerView的用法,請參考
Android滾動元件RecyclerView 的用法
RecyclerView新增點選監聽第一種方法:
在自定義的Adapter中的,onBindViewHolder方法中設定
@Override public void onBindViewHolder(LinearViewHolder holder, int position) { //將條目資訊設定上 Student stu = (Student) mList.get(position); holder.idTv.setText(""+stu.getId()); holder.nameTv.setText(stu.getName()); //新增點選監聽事件 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(mContext, "我被點選了", Toast.LENGTH_SHORT).show(); } }); }
第二種方法:通過回撥
在自定義的Adapter中建立一個介面
//然後宣告 private OnItemClickListener listener; //然後建立建構函式,傳入一個listener //然後在onBindViewHolder方法中將postion傳入進去,如下 /* holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.onClick(position); } }); */ //然後再外面,引數中傳入new .. public interface OnItemClickListener{ void onClick(int pos); } recyclerView.setAdapter(new LinearAdapter(this, ls, new LinearAdapter.OnItemClickListener() { @Override public void onClick(int pos) { Toast.makeText(RecyclerActivity.this, "點選了"+pos, Toast.LENGTH_SHORT).show(); } }));