异步加载
来源:互联网 发布:哪有学java的学校 编辑:程序博客网 时间:2024/05/19 18:37
package com.wzq.listview_iamge;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.List;public class MainActivity extends AppCompatActivity { private ListView lv; String urlTotal = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; // List<Student.DataBean> lists = new ArrayList<>(); private MAdapter mAdapter; private List<News.DataBean> dataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv);// mAdapter = new MAdapter(); initData(); } private void initData() { new MJsonAsyncTask().execute(urlTotal); } class MJsonAsyncTask extends AsyncTask<String, Void, String> { public MJsonAsyncTask() { super(); } //主线程可以更新ui @Override protected void onPostExecute(String s) { super.onPostExecute(s); News news = new Gson().fromJson(s, News.class); dataList = news.getData(); mAdapter = new MAdapter(); lv.setAdapter(mAdapter); } //这个回调方法是子线程; @Override protected String doInBackground(String... strings) { //取第0个元素,就是url; String netjson = NetWordUtils.getNetjson(strings[0]); return netjson; } } class MAdapter extends BaseAdapter { @Override public int getCount() { return dataList.size(); } @Override public Object getItem(int i) { return dataList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View containerView, ViewGroup viewGroup) { View view = View.inflate(MainActivity.this, R.layout.list_item, null); TextView tv_name = (TextView) view.findViewById(R.id.tv_name); ImageView iv = (ImageView) view.findViewById(R.id.iv); tv_name.setText(dataList.get(i).getNews_summary()); /** * getView方法每个条目显示的时候都会调用,所以我们在这个请求图片,并设置 * 把图片url传递给asyncTask */ new MAsyncTaskImage(iv).execute(dataList.get(i).getPic_url()); return view; } } class MAsyncTaskImage extends AsyncTask<String, Void, Bitmap> { ImageView imageView; public MAsyncTaskImage(ImageView imageView) { this.imageView = imageView; } @Override protected Bitmap doInBackground(String... strings) { return NetWordUtils.getNetBitmap(strings[0]); } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imageView.setImageBitmap(bitmap); } }}
阅读全文
0 0
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- *【异步加载】
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步加载
- 异步缓存,异步加载
- 页面同步加载&&异步加载
- POJ 2763 Housewife Wind 笔记
- *TEST 2 for NOIP 妈的智障
- 联网请求工具类
- TPYBoard MircoPython 外接SPI AD7705
- 二维树状数组模板
- 异步加载
- media 属性的使用
- 合并两个排序链表
- Java 基础(4) —— 方法的重载 与 方法的重写
- 贪心G 商人的诀窍
- 解决搜狗输入法输入英文,切换不到中文问题
- 继承
- dropout与过拟合
- tf13: 简单聊天机器人