public class FragmentOne extends Fragment implements IXListViewListener {
private XListView xlv;
private int index;
private String path;
private List<Bean1> list = new ArrayList<Bean1>();
private boolean isRefresh = false;
private MyAdpter my;
public FragmentOne(String path) {
super();
this.path = path;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.one_main, container, false);
xlv = (XListView) view.findViewById(R.id.xlv);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
xlv.setPullLoadEnable(true);
xlv.setXListViewListener(this);
// 请求网络解析的方法
request();
super.onActivityCreated(savedInstanceState);
}
private void request() {
HttpUtils utils = new HttpUtils();
String mypath = path + "?catalog=1&pageIndex=" + index + "&pageSize=20";
utils.send(HttpMethod.GET, mypath, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
String result = arg0.result;
ByteArrayInputStream is = new ByteArrayInputStream(result.getBytes());
List<Bean1> slist = startXml(is);
if (isRefresh) {
list.clear();
}
list.addAll(slist);
if (my == null) {
my = new MyAdpter(getActivity(), list);
xlv.setAdapter(my);
} else {
my.notifyDataSetChanged();
}
// 消失进度
onLoad();
}
});
}
private Bean1 b;
public List<Bean1> startXml(InputStream is) {
List<Bean1> tlist = new ArrayList<Bean1>();
XmlPullParser pull = Xml.newPullParser();
try {
pull.setInput(is, "utf-8");
int eventType = pull.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String name = pull.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("news".equals(name)) {
b = new Bean1();
} else if ("title".equals(name)) {
b.setTitle(pull.nextText());
} else if ("body".equals(name)) {
b.setBody(pull.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("news".equals(name)) {
tlist.add(b);
b = null;
}
break;
}
eventType = pull.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tlist;
}
@Override
public void onRefresh() {
index = 0;
isRefresh = true;
onLoad();
}
@Override
public void onLoadMore() {
index++;
isRefresh = false;
request();
}
protected void onLoad() {
xlv.stopRefresh();
xlv.stopLoadMore();
xlv.setRefreshTime("刚刚");
}
}
private XListView xlv;
private int index;
private String path;
private List<Bean1> list = new ArrayList<Bean1>();
private boolean isRefresh = false;
private MyAdpter my;
public FragmentOne(String path) {
super();
this.path = path;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.one_main, container, false);
xlv = (XListView) view.findViewById(R.id.xlv);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
xlv.setPullLoadEnable(true);
xlv.setXListViewListener(this);
// 请求网络解析的方法
request();
super.onActivityCreated(savedInstanceState);
}
private void request() {
HttpUtils utils = new HttpUtils();
String mypath = path + "?catalog=1&pageIndex=" + index + "&pageSize=20";
utils.send(HttpMethod.GET, mypath, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
String result = arg0.result;
ByteArrayInputStream is = new ByteArrayInputStream(result.getBytes());
List<Bean1> slist = startXml(is);
if (isRefresh) {
list.clear();
}
list.addAll(slist);
if (my == null) {
my = new MyAdpter(getActivity(), list);
xlv.setAdapter(my);
} else {
my.notifyDataSetChanged();
}
// 消失进度
onLoad();
}
});
}
private Bean1 b;
public List<Bean1> startXml(InputStream is) {
List<Bean1> tlist = new ArrayList<Bean1>();
XmlPullParser pull = Xml.newPullParser();
try {
pull.setInput(is, "utf-8");
int eventType = pull.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String name = pull.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("news".equals(name)) {
b = new Bean1();
} else if ("title".equals(name)) {
b.setTitle(pull.nextText());
} else if ("body".equals(name)) {
b.setBody(pull.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("news".equals(name)) {
tlist.add(b);
b = null;
}
break;
}
eventType = pull.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tlist;
}
@Override
public void onRefresh() {
index = 0;
isRefresh = true;
onLoad();
}
@Override
public void onLoadMore() {
index++;
isRefresh = false;
request();
}
protected void onLoad() {
xlv.stopRefresh();
xlv.stopLoadMore();
xlv.setRefreshTime("刚刚");
}
}