Android中實現多條目載入
阿新 • • 發佈:2019-01-09
先寫幾個佈局檔案
public class MyAdapter extends BaseAdapter {
private Context mcontext;
private List<JsonBean.ResultBean.DataBean> list;
public MyAdapter(Context mcontext, List<JsonBean.ResultBean.DataBean> list) { this.mcontext = mcontext; this.list = list; } //進行奇偶判斷有幾個佈局 @Override public int getItemViewType(int position) { if (list.get(position).getThumbnail_pic_s02() != null && list.get(position).getThumbnail_pic_s03() != null) { return 2; } else if (list.get(position).getThumbnail_pic_s02() != null && list.get(position).getThumbnail_pic_s03() == null) { return 1; } return 0; } //有幾個佈局 @Override public int getViewTypeCount() { return 3; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); ViewHolder1 holder1 = null; ViewHolder2 holder2 = null; ViewHolder3 holder3 = null; switch (type) { case 0: if (convertView == null) { holder1 = new ViewHolder1(); convertView = View.inflate(mcontext, R.layout.list_item1, null); holder1.image1 = convertView.findViewById(R.id.image1); holder1.title1 = convertView.findViewById(R.id.title1); holder1.url1 = convertView.findViewById(R.id.url1); convertView.setTag(holder1); } else { holder1 = (ViewHolder1) convertView.getTag(); } JsonBean.ResultBean.DataBean dataBean1 = list.get(position); Picasso.with(mcontext).load(dataBean1.getThumbnail_pic_s()).into(holder1.image1); holder1.url1.setText(dataBean1.getUrl()); holder1.title1.setText(dataBean1.getTitle()); break; case 1: if (convertView == null) { holder2 = new ViewHolder2(); convertView = View.inflate(mcontext, R.layout.list_item2, null); holder2.tu1 = convertView.findViewById(R.id.tu1); holder2.tu2 = convertView.findViewById(R.id.tu2); holder2.title2 = convertView.findViewById(R.id.title2); holder2.url2 = convertView.findViewById(R.id.url2); convertView.setTag(holder2); } else { holder2 = (ViewHolder2) convertView.getTag(); } JsonBean.ResultBean.DataBean dataBean2 = list.get(position); Picasso.with(mcontext).load(dataBean2.getThumbnail_pic_s()).into(holder2.tu1); Picasso.with(mcontext).load(dataBean2.getThumbnail_pic_s02()).into(holder2.tu2); holder2.url2.setText(dataBean2.getUrl()); holder2.title2.setText(dataBean2.getTitle()); break; case 2: if (convertView == null) { holder3 = new ViewHolder3(); convertView = View.inflate(mcontext, R.layout.list_item3, null); holder3.image2 = convertView.findViewById(R.id.image2); holder3.image3 = convertView.findViewById(R.id.image3); holder3.image4 = convertView.findViewById(R.id.image4); holder3.mtitle = convertView.findViewById(R.id.mtitle); holder3.url = convertView.findViewById(R.id.url); convertView.setTag(holder3); } else { holder3 = (ViewHolder3) convertView.getTag(); } JsonBean.ResultBean.DataBean dataBean = list.get(position); Picasso.with(mcontext).load(dataBean.getThumbnail_pic_s()).into(holder3.image2); Picasso.with(mcontext).load(dataBean.getThumbnail_pic_s02()).into(holder3.image3); Picasso.with(mcontext).load(dataBean.getThumbnail_pic_s03()).into(holder3.image4); holder3.url.setText(dataBean.getUrl()); holder3.mtitle.setText(dataBean.getTitle()); break; } return convertView; } class ViewHolder1 { ImageView image1; TextView title1, url1; } class ViewHolder2 { ImageView tu1, tu2; TextView title2, url2; } class ViewHolder3 { ImageView image2, image3, image4; TextView mtitle, url; }
}