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("刚刚"); } }