android之RecycleView適配器添加點擊事件

public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.ViewHolder> {
    private List<String> mData;
    public OnItemClickListener itemClickListener;

    public interface  OnItemClickListener{
        void onItemClick(View view,int position);
    }

    public void setOnItemClickListener(OnItemClickListener itemClickListener) {
        this.itemClickListener = itemClickListener;
    }

    public RecycleAdapter(List<String> mData){
        this.mData=mData;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //將佈局轉化爲View並傳遞給RecycleView封裝好的ViewHolder
        View v=LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycle,parent,false);
        return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        //建立起ViewHolder中視圖與數據的關聯
        holder.textView.setText(mData.get(position)+position);
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        public TextView textView;


        public ViewHolder(View itemView){
            super(itemView);
            textView= itemView.findViewById(R.id.tv_content);
            textView.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            if (itemClickListener!=null){
                itemClickListener.onItemClick(view,getPosition());
            }
        }
    }
}
mAdapter.setOnItemClickListener(new RecycleAdapter.OnItemClickListener() {
     @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
     @Override
     public void onItemClick(final View view, int position) {
           //設置點擊動畫
           Toast.makeText(RecycleViewActivity.this,
                 mData.get(position)+position+"",Toast.LENGTH_SHORT).show();
     }
});

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章