天天看点

RecycleView的基本配置和使用方法(三)---RecycleView中 item的事件处理

item的操作应用:

(1)item的增加和删除,主要是适配器中实现:

(1)增加:
   /**
    *增加Item
    */
  public void addItem(int position) {
    list.add(position,"A");
    notifyItemInserted(position);
   }
   (2)删除
   /**
    *删除Item
    */
     public void removeItem(int position) {
       list.remove(position);
      notifyItemRemoved(position);
     }
           

(2)对item进行操作(以button为操作控件)

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.addItem:
            homeAdapter.addItem(1);
            break;
        case R.id.removeItem:
            homeAdapter.removeItem(1);
            break;
           

(3)RecyclerView中item的长按和短按的监听事件(设置接口进行回调)

public interface ItemClickListener {

 /**
 * Item的普通点击
 */
public void onItemClick(View view, int position);

/**
 * Item长按
 */
public void onItemLongClick(View view, int position);
           

(4)以TextView为例实现点击和长按事件:

//为TextView添加监听回调
    holder.textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (itemClickListener != null) {
                itemClickListener.onItemSubViewClick(holder.textView, position);
            }
        }
    });
           

(5)点击和长按的实现方法

//为item添加普通点击回调
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (itemClickListener != null) {
                    itemClickListener.onItemClick(itemView, getPosition());
                }
            }
        });
        //为item添加长按回调
        itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                if (itemClickListener != null) {
                    itemClickListener.onItemLongClick(itemView, getPosition());
                }
                return true;
            }
        });




       homeAdapter.setItemClickListener(new ItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {
            Toast.makeText(MainActivity.this, "点击了Item" + position, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onItemLongClick(View view, int position) {
            Toast.makeText(MainActivity.this, "长按了Item" + position, Toast.LENGTH_SHORT).show();
        }  
           

继续阅读