网格布局 +使用接口回调删除添加

package com.example.Anmation;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.example.day12rikao.R;

public class RecycleGridActivity extends AppCompatActivity {

private Button add;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.recucle);

    initData();
}
private void initData() {

    final RecyclerView recyclerView = findViewById(R.id.recy);
    GridLayoutManager manager = new GridLayoutManager(this,3);
    manager.setOrientation(OrientationHelper.VERTICAL);
    recyclerView.setLayoutManager(manager);

    final GridAdapter adapter = new GridAdapter();
    for(int i=0;i<10;i++)
    {
        User user = new User();
        user.setName("赵军辉"+i);
        adapter.addItem(user);
    }
    recyclerView.setAdapter(adapter);

    DividerGridItemDecoration dividerGridItemDecoration = new DividerGridItemDecoration(this);
    recyclerView.addItemDecoration(dividerGridItemDecoration);

    //设置增加或删除的动画
    recyclerView.setItemAnimator(new DefaultItemAnimator());

    add = findViewById(R.id.add);

    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            User user = new User();
            user.setName("老戴");
            adapter.addData(0,user);
        }
    });

    adapter.setmCallBack(new GridAdapter.CallBack() {
        @Override
        public void OnClick(int position) {
            Toast.makeText(RecycleGridActivity.this,position+"点击",Toast.LENGTH_LONG).show();
        }

        @Override
        public void OnLong(int position) {
            adapter.removeData(position);
        }
    });
}

}

网格布局的适配器

package com.example.Anmation;

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.example.day12rikao.R;

import java.util.ArrayList;
import java.util.List;

public class GridAdapter extends RecyclerView.Adapter<GridAdapter.ViewHolder> {

private List<User> mlist;

public GridAdapter(){
    this.mlist = new ArrayList<>();
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recy_item,viewGroup,false);

    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
    User user = mlist.get(i);
    viewHolder.title.setText(user.getName());
    viewHolder.layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(mCallBack!=null)
            {
                mCallBack.OnClick(i);
            }
        }
    });

   viewHolder.layout.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            if(mCallBack!=null)
            {
                mCallBack.OnLong(i);
            }
            return true;
        }
    });
}

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

public void addItem(User user){
    if(user!=null)
    {
        mlist.add(user);
    }
}

public void addData(int position,User user){
    mlist.add(position,user);
    notifyItemInserted(position);
    notifyItemRangeChanged(position,mlist.size());
}

public void removeData(int position){
    mlist.remove(position);
    notifyItemRemoved(position);
    notifyItemRangeChanged(position,mlist.size());
}

static  class ViewHolder extends RecyclerView.ViewHolder {

    public final TextView title;
    public final ImageView image;
    public final LinearLayout layout;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        title = itemView.findViewById(R.id.title);
        image = itemView.findViewById(R.id.image);
        layout = itemView.findViewById(R.id.ll);
    }
}

//设置成员变量
CallBack mCallBack;

public void setmCallBack(CallBack callBack){
    this.mCallBack = callBack;
}

public interface CallBack{
    void OnClick(int position);
    void OnLong(int position);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值