package com.bwie.test;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.bwie.test.adapter.MyAdapter;
import com.bwie.test.been.Item;
public class MainActivity extends Activity {
private List list;
private int type_one = 0;
private int type_twe = 1;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
adapter.setChangeList(list);
};
};
private ListView lv;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInputStream();
lv = (ListView) findViewById(R.id.lv_main);
adapter = new MyAdapter(MainActivity.this);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("link", list.get(position).link);
startActivity(intent);
}
});
}
private void getInputStream() {
new Thread() {
public void run() {
try {
Item item = null;
URL url = new URL(
"http://www.sciencenet.cn/xml/iphoneinterface.aspx?type=news&nums=20&pass=");
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setReadTimeout(5000);
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
InputStream inputStream = connection.getInputStream();
// 使用pull解析数据
XmlPullParserFactory factory = XmlPullParserFactory
.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(inputStream, "UTF-8");
int type_name = parser.getEventType();
while (XmlPullParser.END_DOCUMENT != parser.getEventType()) {
switch (type_name) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Item>();
break;
case XmlPullParser.START_TAG:
if ("item".equals(parser.getName())) {
item = new Item();
}
if (item != null) {
if ("title".equals(parser.getName())) {
item.title = parser.nextText();
} else if ("link".equals(parser.getName())) {
item.link = parser.nextText();
} else if ("imgs".equals(parser.getName())) {
item.imgs = parser.nextText();
if (item.imgs.length() > 25) {
item.type_name = type_twe;
} else {
item.type_name = type_one;
}
} else if ("description".equals(parser
.getName())) {
item.description = parser.nextText();
} else if ("copyright".equals(parser.getName())) {
item.copyright = parser.nextText();
} else if ("pubDate".equals(parser.getName())) {
item.pubDate = parser.nextText();
} else if ("comments".equals(parser.getName())) {
item.comments = parser.nextText();
}
}
break;
case XmlPullParser.END_TAG:
list.add(item);
break;
default:
break;
}
type_name = parser.next();
}
handler.sendEmptyMessage(0x123);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
}