import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;
import android.widget.ListView;
import android.widget.Toast;
import com.example.weektoexam.bean.News;
import com.example.weektoexam.bean.Oschina;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
private Myadpter myadpter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(R.id.listview);
myadpter = new Myadpter(this);
listview.setAdapter(myadpter);
resolve_xml();
}
private void resolve_xml() {
// ����������
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpMethod.GET,
"http://www.oschina.net/action/api/news_list?catalog=1&pageIndex=5&pageSize=20",
new RequestCallBack<String>() {
private XmlPullParser newPullParser;
private Oschina oschina;
private News news;
private ArrayList<News> list;
public void onFailure(HttpException arg0, String arg1) {
}
public void onSuccess(ResponseInfo<String> arg0) {
try {
// ���ַ�ת����������
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(
arg0.result.getBytes());
// xml������
newPullParser = Xml.newPullParser();
// ����
newPullParser.setInput(arrayInputStream, "utf-8");
list = new ArrayList<News>();
// �õ���ȡ��������
int eventType = newPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String name = newPullParser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("news".equals(name)) {
news = new News();
} else if ("id".equals(name)) {
news.id = newPullParser.nextText();
} else if ("title".equals(name)) {
news.title = newPullParser.nextText();
} else if ("body".equals(name)) {
news.body = newPullParser.nextText();
} else if ("commentCount".equals(name)) {
news.commentCount = newPullParser
.nextText();
} else if ("author".equals(name)) {
news.author = newPullParser.nextText();
} else if ("authorid".equals(name)) {
news.authorid = newPullParser
.nextText();
} else if ("pubDate".equals(name)) {
news.pubDate = newPullParser.nextText();
} else if ("newstype".equals(name)) {
if ("type".equals(name)) {
news.pubDate = newPullParser
.nextText();
} else if ("authoruid2".equals(name)) {
news.pubDate = newPullParser
.nextText();
}
}
break;
case XmlPullParser.END_TAG:
if ("news".equals(name)) {
list.add(news);
}
myadpter.addList(list);
break;
}
eventType = newPullParser.next();
}
} catch (Exception e) {
}
}
});
}
}
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Xml;
import android.widget.ListView;
import android.widget.Toast;
import com.example.weektoexam.bean.News;
import com.example.weektoexam.bean.Oschina;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
private Myadpter myadpter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listview = (ListView) findViewById(R.id.listview);
myadpter = new Myadpter(this);
listview.setAdapter(myadpter);
resolve_xml();
}
private void resolve_xml() {
// ����������
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpMethod.GET,
"http://www.oschina.net/action/api/news_list?catalog=1&pageIndex=5&pageSize=20",
new RequestCallBack<String>() {
private XmlPullParser newPullParser;
private Oschina oschina;
private News news;
private ArrayList<News> list;
public void onFailure(HttpException arg0, String arg1) {
}
public void onSuccess(ResponseInfo<String> arg0) {
try {
// ���ַ�ת����������
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(
arg0.result.getBytes());
// xml������
newPullParser = Xml.newPullParser();
// ����
newPullParser.setInput(arrayInputStream, "utf-8");
list = new ArrayList<News>();
// �õ���ȡ��������
int eventType = newPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String name = newPullParser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("news".equals(name)) {
news = new News();
} else if ("id".equals(name)) {
news.id = newPullParser.nextText();
} else if ("title".equals(name)) {
news.title = newPullParser.nextText();
} else if ("body".equals(name)) {
news.body = newPullParser.nextText();
} else if ("commentCount".equals(name)) {
news.commentCount = newPullParser
.nextText();
} else if ("author".equals(name)) {
news.author = newPullParser.nextText();
} else if ("authorid".equals(name)) {
news.authorid = newPullParser
.nextText();
} else if ("pubDate".equals(name)) {
news.pubDate = newPullParser.nextText();
} else if ("newstype".equals(name)) {
if ("type".equals(name)) {
news.pubDate = newPullParser
.nextText();
} else if ("authoruid2".equals(name)) {
news.pubDate = newPullParser
.nextText();
}
}
break;
case XmlPullParser.END_TAG:
if ("news".equals(name)) {
list.add(news);
}
myadpter.addList(list);
break;
}
eventType = newPullParser.next();
}
} catch (Exception e) {
}
}
});
}
}