RecyView使用按钮加减删除、点击Item删除

适配器代码:

  

class MyRecyclerViewBase extends RecyclerView.Adapter<MyRecyclerViewBase.ViewHodler> implements View.OnClickListener {

    private Context context;
    private List<String> list;

    public MyRecyclerViewBase(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public ViewHodler onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = View.inflate(context, R.layout.mybase, null);
        v.setOnClickListener(this);
        ViewHodler hodler = new ViewHodler(v);
        return hodler;
    }

    @Override
    public void onBindViewHolder(ViewHodler holder, final int position) {
        holder.tv.setText(list.get(position));
        holder.image.setImageResource(R.drawable.ic_launcher_background);
        holder.itemView.setTag(position);
    }

    @Override
    public void onClick(View v) {
        if (mItemClickListener != null) {
            mItemClickListener.onItemClick((Integer) v.getTag());
        }
    }


    class ViewHodler extends RecyclerView.ViewHolder {

        private final ImageView image;
        private final TextView tv;

        public ViewHodler(View v) {
            super(v);
            image = (ImageView) v.findViewById(R.id.imageView);
            tv = (TextView) v.findViewById(R.id.textView);

        }
    }

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

    //增加
    public void addData(int position, String data) {
        list.add(position, data);
        notifyItemInserted(position);
    }

    //删除
    public void removeData(int position) {
        list.remove(position);
        notifyItemRemoved(position);
    }

    //定义接口
    public interface OnItemClickListener {
        void onItemClick(int position);
    }

    //声明接口对象
    private OnItemClickListener mItemClickListener;

    //判断
    public void setItemClickListener(OnItemClickListener itemClickListener) {
        mItemClickListener = itemClickListener;
    }

}

RecyclerView是一个强大的视图容器,而GridLayout是一种布局管理器,可以将项目放置在网格中。您可以使用RecyclerView与GridLayout来创建具有网格布局的列表或网格视图。 以下是如何将RecyclerView与GridLayout一起使用的步骤: 1. 在您的布局文件中添加RecyclerView视图。 ``` <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="8dp" app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" app:spanCount="2" /> ``` 2. 设置布局管理器并指定列数。 ``` GridLayoutManager layoutManager = new GridLayoutManager(this, 2); recyclerView.setLayoutManager(layoutManager); ``` 3. 创建适配器并将其设置为RecyclerView。 ``` MyAdapter adapter = new MyAdapter(myDataList); recyclerView.setAdapter(adapter); ``` 4. 在适配器中创建网格布局的视图。 ``` public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { private List<MyData> dataList; public MyAdapter(List<MyData> dataList) { this.dataList = dataList; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_grid_view_item, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { MyData data = dataList.get(position); holder.textView.setText(data.getText()); holder.imageView.setImageResource(data.getImageResourceId()); } @Override public int getItemCount() { return dataList.size(); } } public class MyViewHolder extends RecyclerView.ViewHolder { public ImageView imageView; public TextView textView; public MyViewHolder(@NonNull View itemView) { super(itemView); imageView = itemView.findViewById(R.id.imageView); textView = itemView.findViewById(R.id.textView); } } ``` 5. 创建网格布局的视图项布局文件。 ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:padding="8dp"> <ImageView android:id="@+id/imageView" android:layout_width="96dp" android:layout_height="96dp" android:scaleType="centerCrop" android:src="@drawable/my_image" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="My Text" android:textSize="18sp" android:gravity="center_horizontal" /> </LinearLayout> ``` 这样,您就可以创建一个带有GridLayout的RecyclerView
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值