RecyclerAdapter 类
public class MyRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static final String TAG = "MyRecyclerAdapter****************"; private List<NewsBean.DataBeanX.DataBean> list; public MyRecyclerAdapter(List<NewsBean.DataBeanX.DataBean> list) { this.list = list; } @Override public int getItemViewType(int position) { List<String> pics = list.get(position).getPics(); if (pics.size() <= 1) { return 0; } else { return 1; } } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (viewType == 0) { View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.one_recycler, parent, false); MyViewHolder viewHolder = new MyViewHolder(inflate); return viewHolder; } else if (viewType == 1) { View inflate1 = LayoutInflater.from(parent.getContext()).inflate(R.layout.two_recycler, parent, false); MyViewHolder02 viewHolder02 = new MyViewHolder02(inflate1); return viewHolder02; } return null; } @SuppressLint("LongLogTag") @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { String url = "http://365jia.cn/uploads/"; if (holder instanceof MyViewHolder) { final MyViewHolder holder1 = (MyViewHolder) holder; holder1.title_one.setText(list.get(position).getTitle()); String pic1 = list.get(position).getPics().get(0); ImageLoader.getInstance().displayImage(url + pic1, holder1.pic_one, MyApp.getOptions()); holder1.pl_one.setText(list.get(position).getViews_label() + "评论"); holder1.zan_one.setText(list.get(position).getComment_amount() + "赞"); holder1.pic_one.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickLisener.setItemClick(v, position); } }); holder1.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onLongClickLidener.setLongClick(v, position); return false; } }); } else if (holder instanceof MyViewHolder02) { MyViewHolder02 holder02 = (MyViewHolder02) holder; holder02.title_two.setText(list.get(position).getTitle()); String pic1 = list.get(position).getPics().get(0); String pic2 = list.get(position).getPics().get(1); String pic3 = list.get(position).getPics().get(2); ImageLoader.getInstance().displayImage(url + pic1, holder02.pic01_two, MyApp.getOptions()); ImageLoader.getInstance().displayImage(url + pic2, holder02.pic02_two, MyApp.getOptions()); ImageLoader.getInstance().displayImage(url + pic3, holder02.pic03_two, MyApp.getOptions()); holder02.pl_two.setText(list.get(position).getViews_label() + "评论"); holder02.zan_two.setText(list.get(position).getComment_amount() + "赞"); holder02.pic01_two.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickLisener.setItemClick(v, position); } }); holder02.pic02_two.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickLisener.setItemClick(v, position); } }); holder02.pic03_two.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickLisener.setItemClick(v, position); } }); holder02.itemView.setOnLongClickListener( new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onLongClickLidener.setLongClick(v, position); return false; } }); } } @Override public int getItemCount() { return list == null ? 0 : list.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { private final TextView title_one; private final ImageView pic_one; private final TextView pl_one; private final TextView zan_one; public MyViewHolder(View itemView) { super(itemView); title_one = itemView.findViewById(R.id.tv_title_one); pic_one = itemView.findViewById(R.id.iv_pic_one); pl_one = itemView.findViewById(R.id.tv_pl_one); zan_one = itemView.findViewById(R.id.tv_zan_pne); } } public class MyViewHolder02 extends RecyclerView.ViewHolder { private final TextView title_two; private final ImageView pic01_two; private final ImageView pic02_two; private final ImageView pic03_two; private final TextView pl_two; private final TextView zan_two; public MyViewHolder02(View itemView) { super(itemView); title_two = itemView.findViewById(R.id.tv_title_two); pic01_two = itemView.findViewById(R.id.iv_pic01_two); pic02_two = itemView.findViewById(R.id.iv_pic02_two); pic03_two = itemView.findViewById(R.id.iv_pic03_two); pl_two = itemView.findViewById(R.id.tv_pl_two); zan_two = itemView.findViewById(R.id.tv_zan_two); } } private OnItemClickLisener onItemClickLisener; public void setOnItemClickLisener(OnItemClickLisener onItemClickLisener) { this.onItemClickLisener = onItemClickLisener; } public interface OnItemClickLisener { void setItemClick(View v, int position); } public void setOnLongClickLidener(OnLongClickLidener onLongClickLidener) { this.onLongClickLidener = onLongClickLidener; } private OnLongClickLidener onLongClickLidener; public interface OnLongClickLidener { void setLongClick(View v, int position); } }
Main
Gson gson = new Gson(); NewsBean newsBean = gson.fromJson(json, NewsBean.class); final List<NewsBean.DataBeanX.DataBean> data = newsBean.getData().getData(); final List<NewsBean.DataBeanX.DataBean> data01 = data; final MyRecyclerAdapter recyclerAdapter = new MyRecyclerAdapter(data01); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setAdapter(recyclerAdapter); recyclerAdapter.setOnItemClickLisener(new MyRecyclerAdapter.OnItemClickLisener() { @Override public void setItemClick(View v, int position) { ObjectAnimator alpha = ObjectAnimator.ofFloat(v, "alpha", 1f, 0f, 1f); alpha.setDuration(3000); alpha.start(); } }); recyclerAdapter.setOnLongClickLidener(new MyRecyclerAdapter.OnLongClickLidener() { @Override public void setLongClick(View v, final int position) { AlertDialog dialog = new AlertDialog.Builder(MainActivity.this) .setTitle("确定删除吗?") .setIcon(R.mipmap.ic_launcher) .setNeutralButton("取消", null) .setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { data01.remove(position); recyclerAdapter.notifyDataSetChanged(); } }) .create(); dialog.show(); } });