package com.bw.chengfengshuai;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import com.bw.Bean.Bean;
import com.bw.Bean.Data;
import com.google.gson.Gson;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
private String paths="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=10&gender=2&ts=1871746850&page=1";
private ListView lv;
private ArrayList<Data> list;
private Button bt_dingwei,bt_huancun;
private MyAdapter adapter;
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
Bean bean=(Bean) msg.obj;
list=bean.getData();
adapter=new MyAdapter(MainActivity.this, list);
lv.setAdapter(adapter);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.lv);
new Thread() {
public void run() {
getdata();
};
}.start();
bt_dingwei=(Button) findViewById(R.id.bt_dingwei);
bt_dingwei.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent mIntent=new Intent(getApplicationContext(), SendActivity.class);
startActivity(mIntent);
}
});
bt_huancun=(Button) findViewById(R.id.bt_huancun);
}
private void getdata() {
// 要访问的服务器地址
try {
// 设置要访问地址
URL url = new URL(paths);
// 打开连接,得到HttpURLConnection对象
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
// 设置联网超时
connection.setConnectTimeout(5000);
// 设置请求方式
connection.setRequestMethod("GET");
//连接
connection.connect();
// 得到响应码
int responseCode = connection.getResponseCode();
// 如果响应码是200,代表请求成功
if (responseCode == 200) {
// 得到输入流,包含请求到的数据
InputStream inputStream = connection.getInputStream();
// 记录每一行读到的数据
String s = "";
// 追加流里的数据
StringBuffer buffer = new StringBuffer();
// 读出流里的数据
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(inputStream));
// 只要不等于null,流里就一直有数据,就要一直循环读取
while ((s = bufferedReader.readLine()) != null) {
buffer.append(s);
}
String data = buffer.toString();
System.out.println(data);
// 解析数据
Gson gson = new Gson();
Bean bean = gson.fromJson(data, Bean.class);
// 子线程不能更新UI,通过handler发送到主线程
Message msg = Message.obtain();
msg.obj = bean;
handler.sendMessage(msg);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
本文介绍了一个基于Android的应用如何通过网络请求获取JSON数据,并展示如何解析这些数据来填充列表视图。具体包括设置HTTP请求、处理响应数据及使用Gson进行JSON解析。
538

被折叠的 条评论
为什么被折叠?



