//MainActivity
public class MainActivity extends BaseActivity<MainPresenter> implements MainView { private RecyclerView recyclerView; @Override protected void initData() { presenter.login(); } @Override protected void initListance() { } @Override protected void initView() { recyclerView = findViewById(R.id.recycler); } @Override protected MainPresenter providPresenter() { return new MainPresenter(this); } @Override protected int provideLayoutId() { return R.layout.activity_main; } @Override public void onMainSuccess(UserBean userBean) { final List<UserBean.DataBeanX.DataBean> list = userBean.getData().getData(); final MyAdapter myAdapter = new MyAdapter(list); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setAdapter(myAdapter); myAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() { @Override public void OnItemClick(View view, int position) { ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f, 1f); alpha.setDuration(8000); alpha.start(); } }); myAdapter.setOnItemLongClickListener(new MyAdapter.OnItemLongClickListener() { @Override public void OnItemLongClick(View view, final int position) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("删除"); builder.setMessage("确定删除吗?"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { list.remove(position); myAdapter.notifyDataSetChanged(); } }); builder.setNegativeButton("取消",null); builder.show(); } }); } @Override public void onMainFailure(String error) { } @Override public Context context() { return this; } @Override protected void onDestroy() { super.onDestroy(); } }
//Adapter
public class MyAdapter extends RecyclerView.Adapter{ private List<UserBean.DataBeanX.DataBean> list; private View view; public MyAdapter(List<UserBean.DataBeanX.DataBean> list) { this.list = list; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (viewType==0){ view = View.inflate(parent.getContext(), R.layout.layout1, null); return new MainItem1(view); }else { view=View.inflate(parent.getContext(),R.layout.layout2,null); return new MainItem2(view); } } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { int itemViewType = getItemViewType(position); switch (itemViewType){ case 0: ((MainItem1)holder).textView.setText(list.get(position).getTitle()); String img="http://365jia.cn/uploads/"+list.get(position).getPics().get(0); ImageLoader.getInstance().displayImage(img,((MainItem1)holder).imageView, MyApp.getOptions()); ((MainItem1)holder).imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.OnItemClick(v,position); } }); ((MainItem1)holder).textView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onItemLongClickListener.OnItemLongClick(v,position); return true; } }); break; case 1: ((MainItem2)holder).textView.setText(list.get(position).getTitle()); String img1="http://365jia.cn/uploads/"+list.get(position).getPics().get(0); String img2="http://365jia.cn/uploads/"+list.get(position).getPics().get(1); String img3="http://365jia.cn/uploads/"+list.get(position).getPics().get(2); ImageLoader.getInstance().displayImage(img1,((MainItem2)holder).imageView1,MyApp.getOptions()); ImageLoader.getInstance().displayImage(img2,((MainItem2)holder).imageView2,MyApp.getOptions()); ImageLoader.getInstance().displayImage(img3,((MainItem2)holder).imageView3,MyApp.getOptions()); ((MainItem2)holder).textView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { onItemLongClickListener.OnItemLongClick(v,position); return true; } }); ((MainItem2)holder).imageView1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.OnItemClick(v,position); } }); ((MainItem2)holder).imageView2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.OnItemClick(v,position); } }); ((MainItem2)holder).imageView3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.OnItemClick(v,position); } }); break; } } @Override public int getItemCount() { return list==null?0:list.size(); } @Override public int getItemViewType(int position) { List<String> pics = list.get(position).getPics(); if (pics.size()==1){ return 0; } return 1; } private class MainItem1 extends RecyclerView.ViewHolder { private final TextView textView; private final ImageView imageView; public MainItem1(View view) { super(view); textView = view.findViewById(R.id.layout1_text); imageView = view.findViewById(R.id.layout_image); } } private class MainItem2 extends RecyclerView.ViewHolder { private final TextView textView; private final ImageView imageView1; private final ImageView imageView2; private final ImageView imageView3; public MainItem2(View view) { super(view); textView = view.findViewById(R.id.layout2_text); imageView1 = view.findViewById(R.id.layout2_image1); imageView2 = view.findViewById(R.id.layout2_image2); imageView3 = view.findViewById(R.id.layout2_image3); } } private OnItemClickListener onItemClickListener; public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener=onItemClickListener; } public interface OnItemClickListener{ void OnItemClick(View view,int position); } private OnItemLongClickListener onItemLongClickListener; public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener){ this.onItemLongClickListener=onItemLongClickListener; } public interface OnItemLongClickListener{ void OnItemLongClick(View view,int position); } }