HttpURLConnection 数据请求+Gson解析,Listview展示

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
    ListView lv;
    List<Data> list = new ArrayList<Data>();
    Context context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;
        lv = (ListView) findViewById(R.id.lv);
        new Thread() {
            @Override
            public void run() {
                gethttpconnection("http://www.yasite.net/shopapi/index.php/goodController/getGoodList/");
            }
        }.start();

    }

    Handler handler = new Handler() {//主线程

        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 2) {
                myadapter adapter = (myadapter) msg.obj;
                lv.setAdapter(adapter);
            }

        }

    };

    public void gethttpconnection(String Url) {
        try {
            URL url = new URL(Url);
            HttpURLConnection hc = (HttpURLConnection) url.openConnection();
            hc.setRequestMethod("GET");//get请求,必须大写
            hc.setReadTimeout(2000);//读取超时
            hc.setConnectTimeout(5000);//请求超时
            if (hc.getResponseCode() == 200) {//正常请求
                InputStream is = hc.getInputStream();
                byte[] b = new byte[is.available()];
                is.read(b);
                String str = new String(b, 0, b.length);
                Gson gson = new Gson();
                Values values = gson.fromJson(str, Values.class);
                list = values.getData();
                myadapter adapter = new myadapter();
                handler.sendMessage(handler.obtainMessage(2, adapter));//发送

            }

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    class myadapter extends BaseAdapter {//Baseadapter

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            View view = LayoutInflater.from(context).inflate(R.layout.showhttp,
                    null);
            TextView tv = (TextView) view.findViewById(R.id.tv);
            tv.setText(list.get(position).toString());
            return view;
        }

    }

}

 

Gson数据解析实例

package com.example.testhttpconnection_2;

import java.util.List;

public class Values {
    private List<Data> data;
    private int res;

    public Values(List<Data> data, int res) {
        super();
        this.data = data;
        this.res = res;
    }

    public List<Data> getData() {
        return data;
    }

    public void setData(List<Data> data) {
        this.data = data;
    }

    public int getRes() {
        return res;
    }

    public void setRes(int res) {
        this.res = res;
    }
}

 

data实例

package com.example.testhttpconnection_2;

public class Data {
private String goods_id;
private String goods_sn;
private String goods_name;
private String goods_thumb;
private String goods_img;
private String goods_price;
private String shop_price;
public Data(String goods_id, String goods_sn, String goods_name,
        String goods_thumb, String goods_img, String goods_price,
        String shop_price) {
    super();
    this.goods_id = goods_id;
    this.goods_sn = goods_sn;
    this.goods_name = goods_name;
    this.goods_thumb = goods_thumb;
    this.goods_img = goods_img;
    this.goods_price = goods_price;
    this.shop_price = shop_price;
}
public String getGoods_id() {
    return goods_id;
}
public void setGoods_id(String goods_id) {
    this.goods_id = goods_id;
}
public String getGoods_sn() {
    return goods_sn;
}
public void setGoods_sn(String goods_sn) {
    this.goods_sn = goods_sn;
}
public String getGoods_name() {
    return goods_name;
}
public void setGoods_name(String goods_name) {
    this.goods_name = goods_name;
}
public String getGoods_thumb() {
    return goods_thumb;
}
public void setGoods_thumb(String goods_thumb) {
    this.goods_thumb = goods_thumb;
}
public String getGoods_img() {
    return goods_img;
}
public void setGoods_img(String goods_img) {
    this.goods_img = goods_img;
}
public String getGoods_price() {
    return goods_price;
}
public void setGoods_price(String goods_price) {
    this.goods_price = goods_price;
}
public String getShop_price() {
    return shop_price;
}
public void setShop_price(String shop_price) {
    this.shop_price = shop_price;
}
@Override
public String toString() {
    return "Data [goods_id=" + goods_id + ", goods_sn=" + goods_sn
            + ", goods_name=" + goods_name + ", goods_thumb=" + goods_thumb
            + ", goods_img=" + goods_img + ", goods_price=" + goods_price
            + ", shop_price=" + shop_price + "]";
}

}

posted on 2015-04-16 19:46  zhangpf19880329  阅读(471)  评论(0编辑  收藏  举报