安卓多条目加载
来源:互联网 发布:云计算大数据时代 编辑:程序博客网 时间:2024/05/23 13:25
主方法:
package com.example.list;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import com.google.gson.Gson;import java.util.List;public class MainActivity extends AppCompatActivity { private List<Bean.ResultBean.DataBean> list; private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); han(); } public void han(){ String path="http://v.juhe.cn/toutiao/index?type=top&key=f628e84fadf97a32dfc6323c7d89e15b"; new Lin().execute(path); } class Lin extends AsyncTask<String,String,String>{ @Override protected String doInBackground(String... strings) { String json = StreamToStr.str(strings[0]); return json; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); Bean bean = gson.fromJson(s, Bean.class); list = bean.getResult().getData(); MyAdapter adapter=new MyAdapter(MainActivity.this,list); lv.setAdapter(adapter); } }}适配器:package com.example.list;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by ASUS on 2017/12/11. */public class MyAdapter extends BaseAdapter { private Context context; private List<Bean.ResultBean.DataBean> list; public MyAdapter(Context context, List<Bean.ResultBean.DataBean> list) { this.context = context; this.list = list; } //返回加载视图的个数 @Override public int getViewTypeCount() { return 3; } //返回加载的视图 @Override public int getItemViewType(int position) { if (list.get(position).getThumbnail_pic_s() != null && list.get(position).getThumbnail_pic_s02() != null && list.get(position).getThumbnail_pic_s03() != null) { return 0; } else if (list.get(position).getThumbnail_pic_s02() != null && list.get(position).getThumbnail_pic_s03() != null) { return 1; } else { return 2; } } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); switch (type) { case 0: if (view == null) { view = View.inflate(context, R.layout.lv_item, null); } TextView tv = view.findViewById(R.id.tv); ImageView iv1 = view.findViewById(R.id.iv1); ImageView iv2 = view.findViewById(R.id.iv2); ImageView iv3 = view.findViewById(R.id.iv3); tv.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(), iv1); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(), iv2); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s03(), iv3); break; case 1: if (view == null) { //view = View.inflate(context, R.layout.lv_item, null); view= View.inflate(context,R.layout.lv_item1,null); //view= View.inflate(context,R.layout.lv_item2,null); } TextView lv_tv1 = view.findViewById(R.id.tv); ImageView lv_iv1 = view.findViewById(R.id.lv_iv1); ImageView lv_iv2 = view.findViewById(R.id.lv_iv2); lv_tv1.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(), lv_iv1); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(), lv_iv2); break; case 2: if (view == null) { view = View.inflate(context, R.layout.lv_item2, null); } ImageView lv_iv3 = view.findViewById(R.id.lv_iv3); TextView lv_tv2 = view.findViewById(R.id.lv_tv2); ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(), lv_iv3); lv_tv2.setText(list.get(i).getTitle()); break; } return view; }}网络请求工具类package com.example.list;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * Created by ASUS on 2017/12/11. */public class StreamToStr { private static ByteArrayOutputStream baos; public static String str(String path){ try { URL url=new URL(path); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); int code = connection.getResponseCode(); if(code==200){ InputStream is = connection.getInputStream(); baos = new ByteArrayOutputStream(); int len; byte[]arr=new byte[1024*20]; while ((len=is.read(arr))!=-1){ baos.write(arr,0,len); } return baos.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; }}
图片类package com.example.list;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * Created by ASUS on 2017/12/11. */public class Image extends Application{ @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this).build(); ImageLoader instance = ImageLoader.getInstance(); instance.init(configuration); }}最后一个Bean类省略.....
阅读全文
0 0
- 安卓多条目加载
- 安卓多条目加载专用布局 与多条目加载的专用适配器
- 安卓多条目加载专用布局 与多条目加载的专用适配器
- ListView多条目加载
- ListView 多条目加载
- RecycleView加载不同条目
- RecycleView加载不同条目
- listview多条目加载
- ListView多条目加载
- RecyclerView自定义条目加载
- listview多条目加载
- 多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- xlistview多条目加载
- XListView之多条目加载
- android多条目加载
- C++ 常量
- window.location.href的用法(动态输出跳转)
- 动态规划之背包DP专题
- 深入理解Java之线程池
- Yarn FairScheduler 的资源预留机制导致的一次宕机事故分析
- 安卓多条目加载
- java中解析逻辑表达式的两种方法比较
- 宏基Acer台式机 win8 改win7 按F12没有U盘启动选项
- Linux查询端口占用
- 在 vue-cli 脚手架中引用 jQuery、bootstrap 以及使用 sass、less 编写 css [vue-cli配置入门]
- 小象学院《分布式爬虫实战》第二期视频教程
- PHP中udp或tcp请求数据
- 动态规划之树形DP专题
- STM32中DMA AD