package com.com.mr_wrong.RecyclerView; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.mr_wrong.androidstudioproject.R; import java.util.List; /** * Created by Mr_Wrong on 2015/5/11. */ public class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { private List<String> mDatas; private LayoutInflater mInflater; /** * 点击事件接口 */ public interface OnitemClickListener { void onItemClick(View view, int position); void onItemLongClick(View view, int pisition); } private OnitemClickListener mOnitemClickListener; public void setOnitemClickListener(OnitemClickListener onitemClickListener) { this.mOnitemClickListener = onitemClickListener; } public HomeAdapter(Context context, List<String> mDatas) { this.mDatas = mDatas; mInflater = LayoutInflater.from(context); } @Override public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { MyViewHolder holder = new MyViewHolder(mInflater.inflate(R.layout.item_home, viewGroup, false)); return holder; } @Override public void onBindViewHolder(final MyViewHolder holder, int i) { holder.tv.setText(mDatas.get(i)); //如果设置回调,设置点击事件 if (mOnitemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnitemClickListener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); mOnitemClickListener.onItemLongClick(holder.itemView, pos); removeData(pos); return false; } }); } } //删除数据 public void removeData(int pos) { mDatas.remove(pos); notifyItemRemoved(pos); } //添加数据 public void addData(int position) { mDatas.add(position, "Insert One"); notifyItemInserted(position); } @Override public int getItemCount() { return mDatas.size(); } class MyViewHolder extends ViewHolder { TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.id_num); } } }