package com.example.text1.fragment;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import com.example.text1.MyBaseAdapter;
import com.example.text1.News;
import com.example.text1.R;
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;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
public class fragment0 extends Fragment implements IXListViewListener{
private View view;
String path = "http://www.oschina.net/action/api/news_list";
private int index = 0;
private News news;
List<News> list=new ArrayList<News>();
private XListView listview;
protected boolean isRefresh=false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragmetn0, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
listview = (XListView) view.findViewById(R.id.listview0);
searchFromNet();
}
private void searchFromNet() {
String myPath = path+"?&pageIndex="+index;
HttpUtils httputils=new HttpUtils();
httputils.send(HttpMethod.GET, myPath, new RequestCallBack<String>() {
private MyBaseAdapter myBaseAdapter;
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(ResponseInfo<String> info) {
// TODO Auto-generated method stub
String result=info.result;
System.out.println(result);
if(isRefresh){
list.clear();
}
ByteArrayInputStream bais=new ByteArrayInputStream(result.getBytes());
List<News> xmlPull = xmlPull(bais);
list.addAll(xmlPull);
if(myBaseAdapter==null){
myBaseAdapter = new MyBaseAdapter(getActivity(), list);
listview.setAdapter(myBaseAdapter);
}else{
myBaseAdapter.notifyDataSetChanged();
}
onLoad();
}
});
}
public List<News> xmlPull(InputStream inputstream){
try {
XmlPullParserFactory Factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = Factory.newPullParser();
parser.setInput(inputstream, "utf-8");
int eventType = parser.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
String name = parser.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if("news".equals(name)){
news = new News();
}if("title".equals(name)){
news.setTitle(parser.nextText());
}if("pubDate".equals(name)){
news.setPubDate(parser.nextText());
}if("body".equals(name)){
news.setBody(parser.nextText());
}if("author".equals(name)){
news.setAuthor(parser.nextText());
} if("id".equals(name)){
news.setId(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("news".equals(name)){
System.out.println("节点:"+name);
list.add(news);
}
break;
default:
break;
}
eventType = parser.next();
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();}
return list;
}
private void onLoad() {
listview.stopRefresh();
listview.stopLoadMore();
listview.setRefreshTime("刚刚");
}
@Override
public void onRefresh() {
// TODO Auto-generated method stub
index = 0;
isRefresh = true;
}
@Override
public void onLoadMore() {
// TODO Auto-generated method stub
index++;
isRefresh=false;
searchFromNet();
}
}
代码中