httpclient请求数据和gson的解析

package com.bwei.test;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.content.Entity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.Adapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bwei.adapter.Myadapter;
import com.bwei.bean.Json;
import com.bwei.bean.Json.Data;
import com.bwei.bean.Json.Data.MyList;
import com.bwei.xlistview.XListView;
import com.bwei.xlistview.XListView.IXListViewListener;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

public class Second extends Activity implements IXListViewListener {
    private XListView xlistiview;
    private TextView name;
    private ImageView img;
    private BitmapUtils utils;
    private HttpUtils utilss;
    int index;
    List<Data> listm = new ArrayList<Data>();
    String path = "http://api.sina.cn/sinago/list.json?channel=hdpic_funny&adid=4ad30dabe134695c3b7c3a65977d7e72&wm=b207&from=6042095012&chwm=12050_0001&oldchwm=12050_0001&imei=867064013906290&uid=802909da86d9f5fc&p=";
    private List<MyList> list=new ArrayList<MyList>();
    int j=1;
    boolean types=true;
    
    Handler hd=new Handler(){
        public void handleMessage(android.os.Message msg) {
    
            
            if(msg.what==1){
                adapter.changUp(list);
            }else if(msg.what==2){
                adapter.changeDown(list);
            }
        };
    };
    private Myadapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
    

        img = (ImageView) findViewById(R.id.se_img);
        name = (TextView) findViewById(R.id.se_name);
        xlistiview = (XListView) findViewById(R.id.se_listview);
        Intent intent = getIntent();
        String imgs = intent.getStringExtra("img");
        String names = intent.getStringExtra("name");
        utils = new BitmapUtils(this);
        utils.display(img, imgs);
        name.setText(names);
        // 创建线程
        createTh();
        xlistiview.setPullRefreshEnable(true);
        xlistiview.setPullLoadEnable(true);

        xlistiview.setXListViewListener(this);
        adapter = new Myadapter(list, Second.this);
        xlistiview.setAdapter(adapter);
        
    }

    private void createTh() {

        new Thread() {
    
            public void run() {
                try {
                    HttpClient client = new DefaultHttpClient();
                    HttpGet get = new HttpGet(path);
                    HttpResponse response = client.execute(get);
                    int code = response.getStatusLine().getStatusCode();

                    if (code == 200) {
                        //得到里面的json字符串
                        String result = EntityUtils.toString(response
                                .getEntity());
                        System.out.println("解析成功"+result);
                        //进行gson解析
                        Gson gson=new Gson();
                        Type type=new TypeToken<Json>(){}.getType();
                        Json j=gson.fromJson(result, type);
                        list = j.data.list;
                        System.out.println(list.size()+"1111111111");
                        hd.sendEmptyMessage(0);
                        if(types==true){
                            hd.sendEmptyMessage(1);
                        }else{
                            hd.sendEmptyMessage(2);
                        }
                    }

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

        }.start();

    }

    @Override
    public void onRefresh() {
        path=path+1;
        types=true;
        createTh();
        xlistiview.stopRefresh();
        xlistiview.stopLoadMore();

    }

    @Override
    public void onLoadMore() {
        j++;
        path=path+j;
        types=false;
        createTh();
        xlistiview.stopRefresh();
        xlistiview.stopLoadMore();
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值