请求网络加载ListView Asynctack后台线程
来源:互联网 发布:飞机上座率查询软件 编辑:程序博客网 时间:2024/06/06 02:18
MainActivity里的方法参数看一下代码:
import android.graphics.Bitmap;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {public String urlString="http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; String urlBitmap="http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg"; private ListView li; private List<Javabing.DataBean> list; private MybaseAdapter mb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); li = (ListView) findViewById(R.id.li); new Myasy().execute(urlString); list = new ArrayList<Javabing.DataBean>(); Myasy my=new Myasy(); mb = new MybaseAdapter(); li.setAdapter(mb); my.execute(urlString); } private class Myasy extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { String str=strings[0]; String json = Netutil.getJson(str); return json; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); Javabing ja = gson.fromJson(s, Javabing.class); List<Javabing.DataBean> data = ja.getData(); list.addAll(data); mb.notifyDataSetChanged(); } } class MybaseAdapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View vi = view.inflate(MainActivity.this, R.layout.two, null); TextView te = vi.findViewById(R.id.te); te.setText(list.get(i).getNews_summary()); ImageView im = vi.findViewById(R.id.im); new MyAsynctask(im).execute(urlBitmap); return vi; } } private class MyAsynctask extends AsyncTask<String,Void,Bitmap>{ private ImageView im; public MyAsynctask(ImageView im) { this.im=im; } @Override protected Bitmap doInBackground(String... strings) { return Netutil.getNetBitmap(strings[0]); } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); im.setImageBitmap(bitmap); } }工具包Utils里的方法,如一下代码: public static String getJson(String urlString){ try { URL url=new URL(urlString); HttpURLConnection ur = (HttpURLConnection) url.openConnection(); int responseCode = ur.getResponseCode(); if (responseCode==200){ InputStream inpu = ur.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(inpu)); StringBuffer sb=new StringBuffer(); String line=null; while ((line=br.readLine())!=null){ sb.append(line); } return sb.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return "";}public static Bitmap getNetBitmap(String urlString){ try { URL url=new URL(urlString); HttpURLConnection ur = (HttpURLConnection) url.openConnection(); int re = ur.getResponseCode(); if (re==200){ InputStream inputStream = ur.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null;}
然后自己在封装一个Javabing,用来解析Gson串,
中间适配器也需要XML文件,手动建造即可。
public static String getJson(String urlString){ try { URL url=new URL(urlString); HttpURLConnection ur = (HttpURLConnection) url.openConnection(); int responseCode = ur.getResponseCode(); if (responseCode==200){ InputStream inpu = ur.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(inpu)); StringBuffer sb=new StringBuffer(); String line=null; while ((line=br.readLine())!=null){ sb.append(line); } return sb.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return "";}public static Bitmap getNetBitmap(String urlString){ try { URL url=new URL(urlString); HttpURLConnection ur = (HttpURLConnection) url.openConnection(); int re = ur.getResponseCode(); if (re==200){ InputStream inputStream = ur.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null;}然后自己在封装一个Javabing,用来解析Gson串,
中间适配器也需要XML文件,手动建造即可。
阅读全文
0 0
- 请求网络加载ListView Asynctack后台线程
- AsyncTack加载图片
- ImageLoader+网络请求+ListView多条目加载
- listview多条目加载(网络请求)
- listview加载bitmap报oom。读取图片用后台线程。
- AsyncTack
- listview中网络请求图片 用Imageloader加载闪烁问题
- 请求网络,绘制ListView
- 简单网络请求+ListView
- Android studio请求网络数据ListView异步加载展示文字条目 ImageLoadler加载图片
- 网络请求分页加载
- 网络请求展示到listview
- android get网络数据请求加载到listview(本人和新手版本)
- 从零开始搞懂Android网络请求——异步加载ListView
- listview嵌套listview,同时进行网络请求
- ListView异步加载网络数据
- 使用ListView加载网络图片
- ListView异步加载网络数据
- memcpy相关
- HDU3065 病毒侵袭持续中(AC自动机)
- 关于数组传参的一些题型
- 11.1
- 人工智能:传统智能手机时代的终结者
- 请求网络加载ListView Asynctack后台线程
- 微信小程序项目遇到的坑
- ABP官方文档(二十一)【数据过滤器】
- java设计模式之观察者模式
- 正则表达式某些元字符的理解,基于js
- 华展云-让展览更高效 2017第三届中国嘉兴国际集成吊顶产业博览会、国际集成家居暨顶墙集成博览会会刊(参展商名录) 展会名称: 2017年第3届中国(嘉兴)国际集成吊顶产业博览会暨国际集成家居博览
- 从github上使用GIT命令将代码下载到本地
- 【技术教程】SequoiaDB对接Kafka
- VS2017安装打包工具;MFC的使用