点击Button按钮,解析在ListView上

来源:互联网 发布:网络咨询医生兼职招聘 编辑:程序博客网 时间:2024/05/29 17:17

一,

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";  //网址
//线程  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;    }}
阅读全文
0 0
原创粉丝点击