知识点-多条目加载(代码)

来源:互联网 发布:mac 命令行复制文件夹 编辑:程序博客网 时间:2024/05/21 10:38

这里写图片描述

访问接口http://v.juhe.cn/toutiao/index?type=top&key=2f092bd9ce76c0257052d6d3c93c11b4,实现根据图片数量不同的多条目加载。 
根据是否有thumbnail_pic_s,thumbnail_pic_s02,thumbnail_pic_s03来判断具体加载哪种类型

import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ListView;import com.bawei.zhangjinfeng20171109.adapter.MyAdapter;import com.bawei.zhangjinfeng20171109.bean.Bean;import com.bawei.zhangjinfeng20171109.util.MyTask;import com.google.gson.Gson;import java.util.List;public class MainActivity extends AppCompatActivity {    private ListView lv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //查找控件        lv = findViewById(R.id.main_lv);        MyTask myTask = new MyTask(new MyTask.Icallbacks() {            @Override            public void updateUiByjson(String jsonstr) {                Gson gson = new Gson();                Bean bean = gson.fromJson(jsonstr, Bean.class);                List<Bean.ResultBean.DataBean> data = bean.getResult().getData();                lv.setAdapter(new MyAdapter(MainActivity.this,data));            }        });        myTask.execute("http://v.juhe.cn/toutiao/index?type=top&key=2f092bd9ce76c0257052d6d3c93c11b4");    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
import android.content.Context;import android.graphics.Bitmap;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bawei.zhangjinfeng20171109.R;import com.bawei.zhangjinfeng20171109.bean.Bean;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by sky on 2017/11/09. */public class MyAdapter extends BaseAdapter {    private Context context;    private List<Bean.ResultBean.DataBean> data;    private DisplayImageOptions options;    public MyAdapter(Context context, List<Bean.ResultBean.DataBean> data) {        this.context = context;        this.data = data;        options = new DisplayImageOptions.Builder()                .cacheInMemory(true)//使用内存缓存                .cacheOnDisk(true)//使用磁盘缓存                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片格式                .build();    }    @Override    public int getItemViewType(int position) {        String s1 = data.get(position).getThumbnail_pic_s();        String s2 = data.get(position).getThumbnail_pic_s02();        String s3 = data.get(position).getThumbnail_pic_s03();        if(s1!=null && s2=="" && s3==""){            position=1;            return position;         }        if(s1!=null && s2!="" && s3==""){            position=1;            return position;        }        if(s1!=null && s2!="" && s3!=""){            position=2;            return position;        }        return position;    }    @Override    public int getViewTypeCount() {        return 3;    }    @Override    public int getCount() {        return data.size();    }    @Override    public Object getItem(int i) {        return data.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        int type=getItemViewType(i);        if (type==0){            ViewHolder holder;            if (view==null){                view=View.inflate(context,R.layout.item1,null);                holder=new ViewHolder();                holder.tv=view.findViewById(R.id.item_tv);                holder.img = view.findViewById(R.id.item_img);                view.setTag(holder);            }else {                holder= (ViewHolder) view.getTag();            }            holder.tv.setText(data.get(i).getTitle());            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder.img,options);        }else if (type==1){            ViewHolder2 holder;            if (view==null){                view=View.inflate(context,R.layout.item2,null);                holder=new ViewHolder2();                holder.tv=view.findViewById(R.id.item_tv);                holder.img = view.findViewById(R.id.item_img);                holder.img2 = view.findViewById(R.id.item_img2);                view.setTag(holder);            }else {                holder= (ViewHolder2) view.getTag();            }            holder.tv.setText(data.get(i).getTitle());            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder.img,options);            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder.img2,options);        }else if (type==2){            ViewHolder3 holder;            if (view==null){                view=View.inflate(context,R.layout.item3,null);                holder=new ViewHolder3();                holder.tv=view.findViewById(R.id.item_tv);                holder.img = view.findViewById(R.id.item_img);                holder.img2 = view.findViewById(R.id.item_img2);                holder.img3 = view.findViewById(R.id.item_img3);                view.setTag(holder);            }else {                holder= (ViewHolder3) view.getTag();            }            holder.tv.setText(data.get(i).getTitle());            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder.img,options);            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder.img2,options);            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s03(),holder.img3,options);        }        return view;    }    class ViewHolder {        public TextView tv;        public ImageView img;    }    private class ViewHolder2 {        public TextView tv;        public ImageView img;        public ImageView img2;    }    private class ViewHolder3 {        public TextView tv;        public ImageView img;        public ImageView img2;        public ImageView img3;    }}
原创粉丝点击