1. 程式人生 > >RecyclerView點選事件

RecyclerView點選事件

有關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();
                    }
                }));