ListView展示 网络请求的数据, 并LoaderImage请求网络图片

/**
 * 网络获取数据   并解析+解析图片地址
 */
public class MainActivity extends AppCompatActivity {

    private ListView lv;
    List<Da.NewslistBean> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 找控件
        lv = (ListView) findViewById(R.id.lv);

        list = new ArrayList<Da.NewslistBean>();
        // 异步任务
        new AsyncTask<String,Integer,String>(){
            @Override
            protected String doInBackground(String... strings) {

                // 初始化数据
                getData();
                // ImageLoader
                ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this);
                ImageLoader.getInstance().init(configuration);
                return null;
            }

            @Override
            protected void onPostExecute(String s) {

                // 设置适配器
                MyAdapter adapter = new MyAdapter();
                lv.setAdapter(adapter);

                super.onPostExecute(s);
            }
        }.execute();

    }


    private void getData() {

        try {
            URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            int code = conn.getResponseCode();
            if(code == 200){

                // 解析数据
                Gson gson = new Gson();
                Da da = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),Da.class);
                list = da.getNewslist();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


    class MyAdapter 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) {

            ViewHolder holder;
            if(view == null){
                holder = new ViewHolder();
                view = View.inflate(MainActivity.this,R.layout.item,null);
                holder.item_ctime = view.findViewById(R.id.item_ctime);
                holder.item_title = view.findViewById(R.id.item_title);
                holder.item_description = view.findViewById(R.id.item_description);
                holder.item_url = view.findViewById(R.id.item_url);
                holder.iv = view.findViewById(R.id.iv);
                view.setTag(holder);

            }else{
                holder = (ViewHolder) view.getTag();
            }
            String path = list.get(i).getPicUrl();
//            holder.iv.setImageBitmap();
            ImageLoader.getInstance().displayImage(path,holder.iv);
            holder.item_ctime.setText(list.get(i).getCtime());
            holder.item_title.setText(list.get(i).getTitle());
            holder.item_description.setText(list.get(i).getDescription());
            holder.item_url.setText(list.get(i).getUrl());

            return view;
        }
    }

    class ViewHolder{
        TextView item_ctime,item_title,item_description,item_url;
        ImageView iv;
    }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值