實現多條目載入
阿新 • • 發佈:2018-11-05
public class MyAdapter extends BaseAdapter {
private Context context; private List<User.ResultBean.DataBean> list; public MyAdapter(Context context, List<User.ResultBean.DataBean> list) { this.context = context; this.list = list; } @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 int getViewTypeCount() { return 3; } //判斷返回型別 @Override public int getItemViewType(int position) { //得到實體類 User.ResultBean.DataBean bean = list.get(position); int type=0; //判斷哪一個佈局 if(bean.getThumbnail_pic_s03()!=null){ type=2; }else if(bean.getThumbnail_pic_s02()!=null&&bean.getThumbnail_pic_s03()==null){ type=1; } return type; } @Override public View getView(int position, View convertView, ViewGroup parent) { //判斷 //int i = position % 3; int i=getItemViewType(position); switch (i) { case 0: ViewHolder1 holder1=null; if (convertView == null) { convertView = View.inflate(context, R.layout.item_one, null); CircleImageView image11 = convertView.findViewById(R.id.image11); TextView textView = convertView.findViewById(R.id.text1); //設定給ViewHolder holder1 = new ViewHolder1(textView, image11); convertView.setTag(holder1); } else { holder1 = (ViewHolder1) convertView.getTag(); } holder1.getText1().setText(list.get(position).getUrl()); String thumbnail_pic_s = list.get(position).getThumbnail_pic_s(); //載入圖片 ImageLoader.getInstance().displayImage(thumbnail_pic_s, holder1.getImage11(), Myapp.getOptions()); break; case 1: ViewHolder2 holder2=null; if (convertView == null) { //設定檢視 convertView = View.inflate(context, R.layout.item_two, null); //找控制元件 ImageView image22 = convertView.findViewById(R.id.image22); ImageView image21 = convertView.findViewById(R.id.image21); TextView textView2 = convertView.findViewById(R.id.text2); //設定給viewHolder holder2 = new ViewHolder2(textView2, image21, image22); convertView.setTag(holder2); } else { holder2 = (ViewHolder2) convertView.getTag(); } holder2.getText2().setText(list.get(position).getUrl()); String thumbnail_pic_s1 = list.get(position).getThumbnail_pic_s(); String thumbnail_pic_s2 = list.get(position).getThumbnail_pic_s02(); //載入圖片 ImageLoader.getInstance().displayImage(thumbnail_pic_s1, holder2.getImage21(), Myapp.getOptions()); ImageLoader.getInstance().displayImage(thumbnail_pic_s2, holder2.getImage22(), Myapp.getOptions()); break; case 2: ViewHolder3 holder3; if (convertView == null) { convertView = View.inflate(context, R.layout.item_three, null); ImageView image32 = convertView.findViewById(R.id.image32); ImageView image33 = convertView.findViewById(R.id.image33); ImageView image31 = convertView.findViewById(R.id.image31); TextView textView3 = convertView.findViewById(R.id.text3); //例項化物件 holder3 = new ViewHolder3(textView3, image31, image32, image33); convertView.setTag(holder3); } else { holder3 = (ViewHolder3) convertView.getTag(); } //設定控制元件的值 holder3.getText3().setText(list.get(position).getUrl()); String thumbnail_pic_s01 = list.get(position).getThumbnail_pic_s(); String thumbnail_pic_s02 = list.get(position).getThumbnail_pic_s02(); String thumbnail_pic_s03 = list.get(position).getThumbnail_pic_s03(); //載入圖片 三個引數(圖片,控制元件,設定APP方法) ImageLoader.getInstance().displayImage(thumbnail_pic_s01, holder3.getImage31(), Myapp.getOptions()); ImageLoader.getInstance().displayImage(thumbnail_pic_s02, holder3.getImage32(), Myapp.getOptions()); ImageLoader.getInstance().displayImage(thumbnail_pic_s03, holder3.getImage33(), Myapp.getOptions()); break; } return convertView; } class ViewHolder1 { private TextView text1; private CircleImageView image11; public ViewHolder1(TextView text1, CircleImageView image11) { this.text1 = text1; this.image11 = image11; } public TextView getText1() { return text1; } public void setText1(TextView text1) { this.text1 = text1; } public CircleImageView getImage11() { return image11; } public void setImage11(CircleImageView image11) { this.image11 = image11; } } //建立第二個viewholder class ViewHolder2 { TextView text2; ImageView image21; ImageView image22; public ViewHolder2(TextView text2, ImageView image21, ImageView image22) { this.text2 = text2; this.image21 = image21; this.image22 = image22; } public TextView getText2() { return text2; } public void setText2(TextView text2) { this.text2 = text2; } public ImageView getImage21() { return image21; } public void setImage21(ImageView image21) { this.image21 = image21; } public ImageView getImage22() { return image22; } public void setImage22(ImageView image22) { this.image22 = image22; } } class ViewHolder3 { TextView text3; ImageView image31; ImageView image32; ImageView image33; public ViewHolder3(TextView text3, ImageView image31, ImageView image32, ImageView image33) { this.text3 = text3; this.image31 = image31; this.image32 = image32; this.image33 = image33; } public TextView getText3() { return text3; } public void setText3(TextView text3) { this.text3 = text3; } public ImageView getImage31() { return image31; } public void setImage31(ImageView image31) { this.image31 = image31; } public ImageView getImage32() { return image32; } public void setImage32(ImageView image32) { this.image32 = image32; } public ImageView getImage33() { return image33; } public void setImage33(ImageView image33) { this.image33 = image33; } }
}