关于RecycleView子项添加删除等,第一行代码没写的小知识

设置item的间距

  • 先新建一个java文件
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
    private int space;

    public SpacesItemDecoration(int space) {
        this.space = space;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view,
                               RecyclerView parent, RecyclerView.State state) {
        //设置item之间的间距(上下左右)
        outRect.left = space;
        outRect.right = space;
        outRect.bottom = space;
        //设置item与parent的间距
        if (parent.getChildLayoutPosition(view) == 0)
            outRect.top = space;
    }
}
  • 在Activity添加代码
int space = 50; //间距
recyclerView.addItemDecoration(new SpacesItemDecoration(space));

定义间距为50,调用addItemDecoration方法设置间距

item的添加与删除

添加

在Adapter添加代码

public void addData(int position, String s) {
    //在list中指定位置(position)添加item:String对象s
	mList.add(position,s);
    //添加动画
	notifyItemInserted(position);
}
  • 在外面的Activity调用
//指定添加item的位置为0,添加对象s
String s = "abc";
adapter.addData(0,s);
删除item
  • 在Adapter添加代码
public void removeData(int position) {
	//删除子项
	mList.remove(position);
	//删除动画
	notifyItemRemoved(position);
	//整体刷新
	notifyDataSetChanged();
}
  • 在外面的Activity调用
//指定删除的ietm位置
int position = 0;
adapter.removeData(position);

Activity中对item进行点击监听

适配器里边的设置点击事件,直接做一个监听就行了,有时候我们想在Activity中设置监听,就要写多几行代码了。

  • 首先适配器里边加入代码:
  private OnitemClick onitemClick;   //定义点击事件接口

   //定义设置供外部调用的点击事件监听的方法
   public void setOnitemClickLintener (OnitemClick onitemClick) {
       this.onitemClick = onitemClick;
   }
   //定义一个点击事件的接口
   public interface OnitemClick {
       void onItemClick(int position);
   }
 
public void onBindViewHolder(final ViewHolder holder, final int position){
	final note_list note_list= mList.get(position);
	//给text设置点击监听
	holder.textView.setOnClickListener(new View.OnClickListener() {
		   @Override
		   //实现点击事件接口
		   public void onClick(View v) {
		       onitemClick.onItemClick(position);
		   }
	});
 }
  • 在Activity加入代码:
//adapter是适配器的一个对象
adapter.setOnitemClickLintener(new MyAdapter.OnitemClick() {
    @Override
    public void onItemClick(int position) {
       //这里写逻辑
    }
});
Activity中给item设置长按事件监听可以同样的方法处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值