package com.example.recyclerview.ui.adapter;
import android.content.Context;
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.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.recyclerview.R;
import com.example.recyclerview.bean.ProductsBean;
import java.util.List;
public class RvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<ProductsBean.DataBean> list;
private Context context;
private final LayoutInflater layoutInflater;
//1、先定义一个接口
public interface OnItemClickListener {
//单击
void onClick(int position);
//长按
void onLongClick(int position);
}
//2、定义一个属性
private OnItemClickListener onItemClickListener;
//3、定义一个方法
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public RvAdapter(Context context, List<ProductsBean.DataBean> list) {
//创建布局加载器
layoutInflater = LayoutInflater.from(context);
this.context = context;
this.list = list;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//加载条条目布局
View view = layoutInflater.inflate(R.layout.item, parent, false);
ViewHolder1 holder1 = new ViewHolder1(view);
return holder1;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
//给条目设置数据
ProductsBean.DataBean dataBean = list.get(position);
ViewHolder1 holder1 = (ViewHolder1) holder;
String images = dataBean.getImages();
String[] split = images.split("\\|");
Glide.with(context).load(split[0]).into(holder1.iv);
holder1.tvName.setText(dataBean.getTitle());
holder1.tvProduce.setText(dataBean.getPrice() + "");
//给条目设置点击事件
holder1.ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onClick(position);
}
});
//给条目设置长按事件
holder1.ll.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
onItemClickListener.onLongClick(position);
return false;
}
});
}
//设置列表数据条目数量
@Override
public int getItemCount() {
return list.size();
}
class ViewHolder1 extends RecyclerView.ViewHolder {
private final ImageView iv;
private final TextView tvName;
private final TextView tvProduce;
private final LinearLayout ll;
public ViewHolder1(View itemView) {
super(itemView);
//找到条目里的各个组件
ll = itemView.findViewById(R.id.ll);
iv = itemView.findViewById(R.id.iv);
tvName = itemView.findViewById(R.id.tvName);
tvProduce = itemView.findViewById(R.id.tvProduce);
}
}
/**
* 删除条目
*
* @param position
*/
public void removeItem(int position) {
//移除集合中的条目
this.list.remove(position);
//刷新适配器
notifyDataSetChanged();
}
/**
* 删除时带动画效果
* @param position
*/
public void removeItemWithAnim(int position){
//移除集合中的条目
this.list.remove(position);
notifyItemRemoved(position);
}
}
import android.content.Context;
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.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.recyclerview.R;
import com.example.recyclerview.bean.ProductsBean;
import java.util.List;
public class RvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<ProductsBean.DataBean> list;
private Context context;
private final LayoutInflater layoutInflater;
//1、先定义一个接口
public interface OnItemClickListener {
//单击
void onClick(int position);
//长按
void onLongClick(int position);
}
//2、定义一个属性
private OnItemClickListener onItemClickListener;
//3、定义一个方法
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public RvAdapter(Context context, List<ProductsBean.DataBean> list) {
//创建布局加载器
layoutInflater = LayoutInflater.from(context);
this.context = context;
this.list = list;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//加载条条目布局
View view = layoutInflater.inflate(R.layout.item, parent, false);
ViewHolder1 holder1 = new ViewHolder1(view);
return holder1;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
//给条目设置数据
ProductsBean.DataBean dataBean = list.get(position);
ViewHolder1 holder1 = (ViewHolder1) holder;
String images = dataBean.getImages();
String[] split = images.split("\\|");
Glide.with(context).load(split[0]).into(holder1.iv);
holder1.tvName.setText(dataBean.getTitle());
holder1.tvProduce.setText(dataBean.getPrice() + "");
//给条目设置点击事件
holder1.ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onClick(position);
}
});
//给条目设置长按事件
holder1.ll.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
onItemClickListener.onLongClick(position);
return false;
}
});
}
//设置列表数据条目数量
@Override
public int getItemCount() {
return list.size();
}
class ViewHolder1 extends RecyclerView.ViewHolder {
private final ImageView iv;
private final TextView tvName;
private final TextView tvProduce;
private final LinearLayout ll;
public ViewHolder1(View itemView) {
super(itemView);
//找到条目里的各个组件
ll = itemView.findViewById(R.id.ll);
iv = itemView.findViewById(R.id.iv);
tvName = itemView.findViewById(R.id.tvName);
tvProduce = itemView.findViewById(R.id.tvProduce);
}
}
/**
* 删除条目
*
* @param position
*/
public void removeItem(int position) {
//移除集合中的条目
this.list.remove(position);
//刷新适配器
notifyDataSetChanged();
}
/**
* 删除时带动画效果
* @param position
*/
public void removeItemWithAnim(int position){
//移除集合中的条目
this.list.remove(position);
notifyItemRemoved(position);
}
}