XListView

原创 2016年05月31日 21:39:04
package com.example.yuekao1.Fragment;

import java.io.ByteArrayInputStream;
import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParser;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Xml;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.yuekao1.Blogs;
import com.example.yuekao1.BlogsAdapter;
import com.example.yuekao1.R;
import com.example.yuekao1.utils.XListView;
import com.example.yuekao1.utils.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;

public class BoKeUIFragment extends Fragment implements IXListViewListener {
    private XListView lv;
    private BlogsAdapter adapter;
    private int pageIndex = 1;
    private ArrayList<Blogs> list = new ArrayList<Blogs>();
    private HttpUtils httpUtils;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, null);
        lv = (XListView) view.findViewById(R.id.lv);
        lv.setPullLoadEnable(true);
        lv.setPullRefreshEnable(true);
        lv.setXListViewListener(this);
        httpUtils = new HttpUtils();
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        String path = "http://www.oschina.net/action/api/blog_list?pageIndex="
                + pageIndex + "&pageSize=10";
        reguestData(path);
    }

    private void reguestData(String path) {
        httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {

            private Blogs blogs;
            ArrayList<Blogs> blogsList;

            @Override
            public void onFailure(HttpException arg0, String arg1) {

            }

            @Override
            public void onSuccess(ResponseInfo<String> arg0) {
                try {
                    String xml = arg0.result;
                    XmlPullParser newPullParser = Xml.newPullParser();
                    ByteArrayInputStream bais = new ByteArrayInputStream(xml
                            .getBytes());
                    newPullParser.setInput(bais, "utf-8");
                    int eventType = newPullParser.getEventType();
                    while (eventType != XmlPullParser.END_DOCUMENT) {
                        String name = newPullParser.getName();
                        switch (eventType) {
                        case XmlPullParser.START_DOCUMENT:
                            blogsList = new ArrayList<Blogs>();
                            break;
                        case XmlPullParser.START_TAG:
                            if ("blog".equals(name)) {
                                blogs = new Blogs();
                            } else if ("title".equals(name)) {
                                blogs.setTitle(newPullParser.nextText());
                            } else if ("body".equals(name)) {
                                blogs.setBody(newPullParser.nextText());
                            } else if ("commentCount".equals(name)) {
                                blogs.setCommentCount(newPullParser.nextText());
                            } else if ("authorname".equals(name)) {
                                blogs.setAuthorname(newPullParser.nextText());
                            } else if ("pubDate".equals(name)) {
                                blogs.setPubDate(newPullParser.nextText());
                            }
                            break;
                        case XmlPullParser.END_TAG:
                            if ("blog".equals(name)) {
                                blogsList.add(blogs);
                                blogs = null;
                            }
                            break;
                        }
                        eventType = newPullParser.next();
                    }
                    list.addAll(blogsList);
                    if (adapter == null) {
                        adapter = new BlogsAdapter(list, getActivity());
                        lv.setAdapter(adapter);
                    } else {
                        adapter.notifyDataSetChanged();
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }

    @Override
    public void onRefresh() {
        list.clear();
        pageIndex = 1;
        String path = "http://www.oschina.net/action/api/blog_list?pageIndex="
                + pageIndex + "&pageSize=10";
        reguestData(path);
        onLoad();
    }

    private void onLoad() {
        lv.stopRefresh();
        lv.stopLoadMore();
        lv.setRefreshTime("�ո�");
    }

    @Override
    public void onLoadMore() {
        pageIndex += 1;
        String path = "http://www.oschina.net/action/api/blog_list?pageIndex="
                + pageIndex + "&pageSize=10";
        reguestData(path);
        onLoad();
    }

    @Override
    public void onPause() {
        adapter = null;
        super.onPause();
    }
}

XListView的介绍和使用

在开发的过程中,wo'm
  • forwardyzk
  • forwardyzk
  • 2014年04月27日 23:39
  • 11913

安卓框架——XListView(上拉加载,下拉刷新)的使用方法

Xlistview项目主要是三部分:XlistView,XListViewHeader,XListViewFooter,分别是XListView主体、Header、Footer的实现。Header是通...
  • zwl5670
  • zwl5670
  • 2015年09月07日 21:39
  • 4669

Android-->巧用XListView,打造万能的下拉刷新控件

摘要:想必大家做开发的时候都会用到下拉刷新的控件,现在各种第三方的下拉刷新控件不胜枚举。当然最NB的还是XListView。其他也有针对GridView,ScrollView,LinearLayout...
  • chan1116
  • chan1116
  • 2015年06月30日 18:11
  • 1239

框架学习:XListView的使用

注意事项: 1、XListView因为添加了Header,会导致存储的数据+1,所以赋值时需要position-1。补充:当去掉HeaderView时,position不用-1。 2、提个建议:上拉加...
  • hanxiaolong5201314
  • hanxiaolong5201314
  • 2015年08月07日 08:52
  • 296

Android XListView实现原理讲解及分析

转载自:http://blog.csdn.net/zhaokaiqiang1992/article/details/42392731 XListview是一个非常受欢迎的下拉刷新控件,但是已经停...
  • jdsjlzx
  • jdsjlzx
  • 2015年03月08日 20:15
  • 31948

xListView下拉刷新和上拉加载更多

XListView package com.itheima24.know.ui; import com.itheima24.know.R; import android.cont...
  • liuqiang211
  • liuqiang211
  • 2015年06月02日 20:01
  • 1318

Android-----XlistView上拉刷新下拉加载更多

1.想要实现xlistview上拉刷新下拉加载更多必须导入xlistview文件,在file-new-ImportModule-选择路径导入-导入完成之后在xlistview下的build.gradl...
  • leehbhs
  • leehbhs
  • 2017年06月08日 15:57
  • 367

Android Xlistview的源码浅度分析 监听ListView上下滑动 以及是否到顶和底部

比如我们很多项目中会用到listview
  • sk719887916
  • sk719887916
  • 2014年10月11日 10:27
  • 1471

XlistView的使用方法

import java.io.InputStream; import java.util.ArrayList; import me.maxwin.view.XListView; import me....
  • bl0106
  • bl0106
  • 2016年05月30日 16:55
  • 401

XListView 配置文件 需导入项目 类名:XListView

 /**  * @file XListView.java  * @package me.maxwin.view  * @create Mar 18, 2012 6:28:41 PM  *...
  • zl406707
  • zl406707
  • 2016年08月14日 20:52
  • 214
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XListView
举报原因:
原因补充:

(最多只允许输入30个字)