知识点-多条目加载(代码)
来源:互联网 发布: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.Bundleimport android.support.v7.app.AppCompatActivityimport android.widget.ListViewimport com.bawei.zhangjinfeng20171109.adapter.MyAdapterimport com.bawei.zhangjinfeng20171109.bean.Beanimport com.bawei.zhangjinfeng20171109.util.MyTaskimport com.google.gson.Gsonimport java.util.Listpublic 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.Contextimport android.graphics.Bitmapimport android.view.Viewimport android.view.ViewGroupimport android.widget.BaseAdapterimport android.widget.ImageViewimport android.widget.TextViewimport com.bawei.zhangjinfeng20171109.Rimport com.bawei.zhangjinfeng20171109.bean.Beanimport com.nostra13.universalimageloader.core.DisplayImageOptionsimport com.nostra13.universalimageloader.core.ImageLoaderimport java.util.Listpublic 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 }}