/** * 控件初始化 * */ private void initView(){ recyclerView=(RecyclerView)findViewById(R.id.recyclerView); //添加分割线 recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); //设置布局管理器 recyclerView.setLayoutManager(new LinearLayoutManager(this)); //设置item增加和删除时的动画 recyclerView.setItemAnimator(new DefaultItemAnimator()); homeAdapter=new HomeAdapter(this,list); homeAdapter.setOnItemClickListener(new HomeAdapter.OnIteClickListener() { @Override public void OnItemClick(View view, int position) { Toast.makeText(ViewTestActivity.this, "点击第"+position+"项", Toast.LENGTH_SHORT).show(); } @Override public void OnItemLongClick(View view, int position) { homeAdapter.remmoveData(position); } }); recyclerView.setAdapter(homeAdapter); }
** * Created by 123 on 2018/3/1. * * RecyclerView的适配器 */ public class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { private List<String> mList; private Context mContext; private OnIteClickListener mOnIteClickListener; /** * 构造方法 * */ public HomeAdapter(Context context,List<String> list){ mContext=context; mList=list; } /** * 删除数据 * */ public void remmoveData(int position){ mList.remove(position);//删除数据 notifyItemRemoved(position);//更新列表 } @Override public HomeAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder=new MyViewHolder( LayoutInflater.from(mContext).inflate(R.layout.itme_recycl,parent,false)); return holder; } /** * 设置列表内容 * * 在这里设置点击事件的监听 * 并且传递给控件 * */ @Override public void onBindViewHolder(final MyViewHolder holder, int position) { holder.tv_item.setText(mList.get(position)); if(mOnIteClickListener!=null){ //textView的点击事件设置 holder.tv_item.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos=holder.getLayoutPosition(); mOnIteClickListener.OnItemClick(holder.tv_item,pos); } }); //长按点击事件设置 holder.tv_item.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos=holder.getLayoutPosition(); mOnIteClickListener.OnItemLongClick(holder.tv_item,pos); return false; } }); } } @Override public int getItemCount() { return mList.size(); } /** * 注册控件 * */ class MyViewHolder extends RecyclerView.ViewHolder{ TextView tv_item; public MyViewHolder(View view){ super(view); tv_item=(TextView)view.findViewById(R.id.tv_item); } } /** * 设置点击接口 * * 需要自定义点击事件 * */ public interface OnIteClickListener{ //点击事件接口,实现它需要实现下面两个方法 void OnItemClick(View view,int position); void OnItemLongClick(View view,int position); } public void setOnItemClickListener(OnIteClickListener onItemClickListener){ //设置点击事件的方法 mOnIteClickListener=onItemClickListener; }