private ArrayList<Bean> list;
private Bean bean;
private String name;
private MyAdapter adapter;
private XListView lv;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 101:
adapter.notifyDataSetChanged();
break;
default:
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到控件
initEven();
// 获得Xml数据
getXml();
list = new ArrayList<Bean>();
adapter = new MyAdapter(this, list);
lv.setAdapter(adapter);
}
private void getXml() {
new Thread() {
public void run() {
try {
URL url = new URL(
"http://www.oschina.net/action/api/blog_list?type=latest&pageIndex=+n+&pageSize=20");
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
int code = conn.getResponseCode();
if (code == 200) {
InputStream inputStream = conn.getInputStream();
toXml(inputStream);
handler.sendEmptyMessage(101);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
public void toXml(InputStream in) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(in, "UTF-8");
int eventType = parser.getEventType();
while (eventType != parser.END_DOCUMENT) {
name = parser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
if(name.equals("blog")){
bean = new Bean();
}else if(name.equals("id")){
String id=parser.nextText();
bean.setId(id);
}else if(name.equals("title")){
String title=parser.nextText();
bean.setTitle(title);
}else if(name.equals("url")){
String url=parser.nextText();
bean.setUrl(url);
}else if(name.equals("body")){
String body=parser.nextText();
bean.setBody(body);
}else if(name.equals("pubDate")){
String pubDate=parser.nextText();
bean.setPubDate(pubDate);
}else if(name.equals("authorname")){
String authorname=parser.nextText();
bean.setAuthorname(authorname);
}
break;
case XmlPullParser.END_TAG:
if(name.equals("blog")){
list.add(bean);
//System.out.println(list.toString()+"============================");
}
break;
default:
break;
}
eventType=parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void initEven() {
lv = (XListView) findViewById(R.id.lv);
lv.setPullLoadEnable(true);
lv.setXListViewListener(this);
}
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
lv.stopRefresh();
}
}, 2000);
}
@Override
public void onLoadMore() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
lv.stopLoadMore();
adapter.notifyDataSetChanged();
}
}, 2000);
}