public class MainActivity extends Activity {
private ListView lv;
private ArrayList<DataBean> list=new ArrayList<DataBean>();
String path="http://v.juhe.cn/weixin/query?key=271f7c3d187e09fd414733d4e8b06e8b&dtype=xml";
private Handler mHandler=new Handler(){
public void handleMessage(Message msg) {
ArrayList<DataBean> list=(ArrayList<DataBean>) msg.obj;
lv.setAdapter(new MyAdapter(MainActivity.this,list));
jianTing();
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
getData();
}
public void jianTing(){
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
intent.putExtra("url", list.get(arg2).getUrl());
startActivity(intent);
}
});
}
private void getData() {
new Thread(){
private InputStream in;
private DataBean d;
public void run() {
HttpClient client=new DefaultHttpClient();
HttpGet get=new HttpGet(path);
try {
HttpResponse response = client.execute(get);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode==200) {
in = response.getEntity().getContent();
System.out.println(in);
}
} catch (Exception e) {
e.printStackTrace();
}
try {
XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
XmlPullParser newPullParser = factory.newPullParser();
newPullParser.setInput(in,"utf-8");
int eventType = newPullParser.getEventType();
while (eventType!=XmlPullParser.END_DOCUMENT) {
String name = newPullParser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("firstImg".equals(name)) {
d = new DataBean();
d.setFirstImg(newPullParser.nextText());
}else if ("id".equals(name)) {
d.setId(newPullParser.nextText());
}else if ("mark".equals(name)) {
d.setMark(newPullParser.nextText());
}else if ("source".equals(name)) {
d.setSource(newPullParser.nextText());
}else if ("title".equals(name)) {
d.setTitle(newPullParser.nextText());
}else if ("url".equals(name)) {
d.setUrl(newPullParser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("item".equals(name)) {
list.add(d);
d=null;
}
break;
default:
break;
}
eventType=newPullParser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
Message msg = new Message();
msg.obj=list;
mHandler.sendMessage(msg);
};
}.start();
}
}