zoukankan      html  css  js  c++  java
  • 解析xml并展示数据(fragment)

    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("刚刚");
        }
    
    }
  • 相关阅读:
    linux进程调度策略(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
    10、单机运行环境搭建之 --Windows下mysqldump 备份与还原数据库
    5、单机运行环境搭建之 --CentOS6.4拷贝Tomcat7形成集群
    9、单机运行环境搭建之 --CentOS6.4下mysqldump 备份与还原数据库
    7、单机运行环境搭建之 --CentOS6.4安装Memcached
    13、单机运行环境搭建之 --Centos6.4下iptables保护主机安全
    12、单机运行环境搭建之 --Centos6.4下webbench压力测试
    6、单机运行环境搭建之 --CentOS6.4安装MySQL 5.6.10并修改MySQL的root用户密码
    4、单机运行环境搭建之 --CentOS6.5优化Tomcat7
    8、单机运行环境搭建之 --CentOS6.4安装vsftpd
  • 原文地址:https://www.cnblogs.com/8023-itxinde/p/5356919.html
Copyright © 2011-2022 走看看