public class MainActivity extends AppCompatActivity { String ni="https://www.toutiao.com/api/pc/focus/"; //图片的网址 String tu = "https://img-my.youkuaiyun.com/uploads/201407/26/1406383265_8550.jpg"; private ListView lv; private List<Mybean.DataBean.PcFeedFocusBean> list=new ArrayList<>(); private Myadapter my; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); my = new Myadapter(); lv.setAdapter(my); //ni为网站的地址 new Myasyntask().execute(ni); } class Myadapter extends BaseAdapter{ private ImageView itu; private TextView tv; private Hodler hodler; @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) { if (view==null){ hodler = new Hodler(); view = View.inflate(MainActivity.this, R.layout.lv, null); view.setTag(hodler); }else{ hodler = (Hodler) view.getTag(); } hodler.tv = view.findViewById(R.id.tv); hodler.tv.setText(list.get(i).getTitle()); hodler.tv.setText(list.get(i).getTitle()); hodler.itu = view.findViewById(R.id.tu); new Mytuasynctask(hodler.itu).execute(tu); return view; } } //listview的优化类 class Hodler{ TextView tv; ImageView itu; } //图片的类 class Mytuasynctask extends AsyncTask<String,Void,Bitmap>{ private ImageView iv; //有参构造的方法 public Mytuasynctask(ImageView iv) { this.iv = iv; } @Override protected Bitmap doInBackground(String... strings) { //工具包转Bitmap的方法 return Myutil.totu(strings[0]); } @Override protected void onPostExecute(Bitmap bitmap) { //为图片设置值 iv.setImageBitmap(bitmap); } } class Myasyntask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { String net= strings[0]; //工具类解析网站的方法 String tonet = Myutil.tonet(net); return tonet; } @Override protected void onPostExecute(String s) { Gson gson = new Gson(); Mybean mybean = gson.fromJson(s, Mybean.class); List<Mybean.DataBean.PcFeedFocusBean> been = mybean.getData().getPc_feed_focus(); //把集合存放到全局的集合里面 list.addAll(been); //必须刷新适配器 my.notifyDataSetChanged(); } } }
AsyncTask listview加图片
最新推荐文章于 2018-12-26 14:45:46 发布