网络请求展示到listview

来源:互联网 发布:娃娃音网络女歌手 编辑:程序博客网 时间:2024/05/21 09:57
package com.example.unit3_httppost_demo;


import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;


import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;


import com.google.gson.Gson;


import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
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 {

private List<Weixin> lists;

private Handler myHandler=new Handler(){
public void handleMessage(android.os.Message msg) {

//接收数据
lists=(List<Weixin>) msg.obj;

//更新listview
MyAdapter adapter=new MyAdapter();
lv.setAdapter(adapter);

};

};


private ListView lv;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
}


class MyAdapter extends BaseAdapter{


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


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


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


@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {

arg1=View.inflate(MainActivity.this, R.layout.item, null);
TextView tvS=(TextView) arg1.findViewById(R.id.tv_source);
TextView tvT=(TextView) arg1.findViewById(R.id.tv_title);

tvS.setText(lists.get(arg0).getSource());
tvT.setText(lists.get(arg0).getTitle());


return arg1;
}

}








public void requestdata(View v){
//1.开启子线程
new Thread(){
public void run() {

//1.创建httpclient对象
HttpClient hc=new DefaultHttpClient();

//2.使用post请求,HttpPost  get,HttpGet,需要添加请求的网址
HttpPost hp=new HttpPost("http://v.juhe.cn/weixin/query");


//将请求的参数放到此集合对象中
List<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>();
//BasicNameValuePair:键值对 
parameters.add(new BasicNameValuePair("key", "88f7bbc507e3ecacfaeab2b47dd8936f"));
parameters.add(new BasicNameValuePair("pno", "1"));
parameters.add(new BasicNameValuePair("ps", "10"));
parameters.add(new BasicNameValuePair("pno", "1"));
parameters.add(new BasicNameValuePair("dtype", "json"));




//3.设置参数数据  HttpEntity是接口
HttpEntity entity;
try {
entity = new UrlEncodedFormEntity(parameters, "utf-8");
hp.setEntity(entity);


//4.执行请求
HttpResponse response = hc.execute(hp);

//5.得到结果码,判断 
int code=response.getStatusLine().getStatusCode();
if(code==200){
//6.获得结果 
HttpEntity result = response.getEntity();

String content=EntityUtils.toString(result);
Log.d("zzz", content);


//进行解析
Gson gs=new Gson();
Result weixinResult=gs.fromJson(content, Result.class);

//发送消息,更新界面
Message msg=Message.obtain();
msg.obj=weixinResult.getResult().getList();
myHandler.sendMessage(msg);


}





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








};
}.start();

}


}
阅读全文
0 0
原创粉丝点击