点击Button按钮,解析在ListView上

一,

public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg";  //网址
//线程  Handler 
private Handler handler = new Handler(){      
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what ==1){
            lv.setAdapter(new MAdapter());
        }else if (msg.what ==2){
            Bitmap bitmp = (Bitmap) msg.obj;
            im.setImageBitmap(bitmp);
        }
    }
};
二,
public void getNetData(View view) {
    new Thread() {
        @Override
        public void run() {
            super.run();
            //接收的是字符串;是json;
            String netjson = NetWordUtils.getNetjson(urlString);
            Gson gson = new Gson();
            News news = gson.fromJson(netjson, News.class);
            dataBeanList = news.getData();
            //需要发送handler,来设置adapter
            Message message = new Message();
            message.what = 1;
            handler.sendMessage(message);
        }
    }.start();
}
//这时少个NetWordUtils类,还少个Gson包,还少个News解析包
//在重新建个类,名叫NetWordUtils,写下面的代码,News类直接解析
private static String  tag = "NetWordUtils";
/**
 * 获取网络json
 *
 * @param urlString
 * @return
 */
public static String getNetjson(String urlString) {
    try {
        URL url = new URL(urlString);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");//若果是get请求可以不用配置; 其他请求必须配置
        urlConnection.setConnectTimeout(8000);//设置链接超时间
        InputStream inputStream = urlConnection.getInputStream();//获取网络返回的输入流;
        //可拼接的字符串
        StringBuilder stringBuilder = new StringBuilder();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String temp = "";
        while ((temp = bufferedReader.readLine()) != null) {
            stringBuilder.append(temp);
            temp = "";
        }
        //这个是网络获取的数据
        String data = stringBuilder.toString();
        Log.e(tag, "getData: " + data);
        return data;
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return "";
}
/**
 * 获取网络图片的工具类
 *
 * @param urlString
 * @return
 */
public static Bitmap getNetBitmap(String urlString) {
    try {
        //用URL封装链接地址;
        URL url = new URL(urlString);
        //用url打开链接
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        //联网的状态码
        int responseCode = urlConnection.getResponseCode();
        if(responseCode ==200){
            //链接上获取输入流
            InputStream inputStream = urlConnection.getInputStream();
            //把流直接转换成bitmap(系统提供的BitmapFactory)
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);//BitmapFactory是个工具类,系统提供的
            return bitmap;
        }else {
            Log.e(tag, "网络状态码:: "+responseCode );
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
三,
public void getNetBitmap(View view){
    new Thread(
            new Runnable() {
                @Override
                public void run() {
                    //得到服务器返回的bitmap
                    Bitmap netBitmap = NetWordUtils.getNetBitmap(urlBitmap);
                    Message message = handler.obtainMessage();
                    message.what = 2;
                    message.obj = bitmap;
                    handler.sendMessage(message);
                }
            }
    ).start();
}
四,
class MAdapter extends BaseAdapter {


    @Override
    public int getCount() {
        return dataBeanList.size();
    }

    @Override
    public Object getItem(int i) {
        return dataBeanList.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = View.inflate(MainActivity.this, R.layout.item, null);
        TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
        tv_name.setText(dataBeanList.get(i).getNews_summary());
        return view;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值