package com.bwie.fragment;
import java.util.ArrayList;
import java.util.List;
import com.bwie.adapter.MyDataAdapter;
import com.bwie.adapter.MyDataAdapter_1;
import com.bwie.fuxi_06a.R;
import com.bwie.vo.XmlBean;
import com.bwie.vo.XmlBean.News;
import com.bwie.vo.XmlBean_1;
import com.bwie.vo.XmlBean_1.Blog;
import com.bwie.xlistview.XListView;
import com.bwie.xlistview.XListView.IXListViewListener;
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 com.thoughtworks.xstream.XStream;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MyFragment extends Fragment implements IXListViewListener {
private String URL = "http://www.oschina.net/action/api/news_list";
private String URL_1 = "http://www.oschina.net/action/api/blog_list";
private ArrayList<News> dlist = new ArrayList<News>();
private ArrayList<Blog> dlist_1 = new ArrayList<Blog>();
private XListView lv;
private int REFRESH = 0;
private int LOAD = 1;
private int load_p = 1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// 填充布局
View view = inflater.inflate(R.layout.fragment, null);
lv = (XListView) view.findViewById(R.id.lv);
// 为listiview 控件设置上拉
lv.setPullLoadEnable(true);
// 设置监听事件
lv.setXListViewListener(this);
// 获取传来的值
Bundle b = getArguments();
if (b != null) {
String column = b.getString("column");
if (column.equals("资讯") || column.equals("热点")) {
// 请求网络数据
reqData(column, 1, REFRESH, URL);
}
if (column.equals("博客") || column.equals("推荐")) {
// 请求网络数据
reqData(column, 1, REFRESH, URL_1);
}
}
return view;
}
private void reqData(final String column, int pageIndex, final int p,
String url) {
HttpUtils utils = new HttpUtils();
StringBuffer sb = new StringBuffer(url);
if (column.equals("资讯")) {
sb.append("?pageIndex=" + pageIndex);
}
if (column.equals("热点")) {
sb.append("?pageIndex=" + pageIndex);
sb.append("&show=week");
}
if (column.equals("博客")) {
sb.append("?type=latest");
sb.append("&pageIndex=" + pageIndex);
}
if (column.equals("推荐")) {
sb.append("?type=recommend");
sb.append("&pageIndex=" + pageIndex);
}
utils.send(HttpMethod.GET, sb.toString(),
new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 获取响应的数据
String result = arg0.result;
XStream xStream = new XStream();
if (column.equals("资讯") || column.equals("热点")) {
// 进行解析xml
xStream.processAnnotations(XmlBean.class);
XmlBean fromXML = (XmlBean) xStream.fromXML(result);
List<News> news = fromXML.newslist.news;
if (p == REFRESH)// 正在刷新数据
{
dlist.addAll(0, news);
} else {
dlist.addAll(news);
}
// 为listview设置适配器
lv.setAdapter(new MyDataAdapter(getActivity(),
dlist));
// 取消刷新
onLoad();
} else {
// 进行解析xml
xStream.processAnnotations(XmlBean_1.class);
XmlBean_1 fromXML = (XmlBean_1) xStream
.fromXML(result);
List<Blog> blog = fromXML.blogs.blog;
if (p == REFRESH)// 正在刷新数据
{
dlist_1.addAll(0, blog);
} else {
dlist_1.addAll(blog);
}
// 为listview设置适配器
lv.setAdapter(new MyDataAdapter_1(getActivity(),
dlist_1));
// 取消刷新
onLoad();
}
}
});
}
@Override
public void onRefresh() {
// 重新请求数据
reqData("资讯", 1, REFRESH,URL);
reqData("热点", 1, REFRESH,URL);
reqData("博客", 1, REFRESH,URL_1);
reqData("推荐", 1, REFRESH,URL_1);
}
@Override
public void onLoadMore() {
load_p++;
// 重新请求数据
reqData("资讯", load_p, LOAD,URL);
reqData("热点", load_p, LOAD,URL);
reqData("博客", load_p, LOAD,URL_1);
reqData("推荐", load_p, LOAD,URL_1);
}
/** 停止刷新, */
private void onLoad() {
lv.stopRefresh();
lv.stopLoadMore();
lv.setRefreshTime("刚刚");
}
}