Recyclerview adapter

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;

/**
 * Created by 13fen on 2017/10/19.
 */

public class MyAdapter  extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener,View.OnLongClickListener{
    private ArrayList<Items> data;
    public MyAdapter(ArrayList<Items> t){
        data = t;
    }

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

    public  static interface OnItemLongClickListener {
        void onItemLongClick(View view, int position);
    }

    private OnItemClickListener clickListener = null;
    private OnItemLongClickListener longClickListener = null;

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_items,parent,false);
        view.setOnClickListener(this);
        view.setOnLongClickListener(this);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.tv.setText(data.get(position).getName());
        holder.tv1.setText(data.get(position).getName().substring(0,1));
        holder.itemView.setTag(position);
    }

    @Override
    public void onClick(View v) {
        if(clickListener != null){
            clickListener.onItemClick(v,(int)v.getTag());
        }
    }

    @Override
    public boolean onLongClick(View v) {
        if(longClickListener != null){
            longClickListener.onItemLongClick(v,(int)v.getTag());
        }
        return false;
    }

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

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

    public void setOnItemLongClickListener(OnItemLongClickListener listener) {
        this.longClickListener = listener;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        TextView tv, tv1;
        public ViewHolder(View view){
            super(view);
            tv = view.findViewById(R.id.name);
            tv1 = view.findViewById(R.id.price);
        }
    }
}
posted @ 2017-10-25 10:52  liangf27  阅读(133)  评论(0编辑  收藏  举报