XListview上拉刷新,下拉加载

XListView实现上拉刷新,下拉加载数据的功能,此控件于大约两年前已停止更新维护,我用这个就是从githup(红字的官网)上下载的一个文件,然后做成一个依赖库,感兴趣的同学可以尝试下。


依赖库的使用:File中导入项目(Import  Mudole),然后快捷键ctrl+shift+alt+s,调出Dependencies选上要依赖的文件,点击右上+号,第三个选项,选择要与哪个文件进行关联,然后点击ok。


实现思路

/**
 *  官网:https://github.com/Maxwin-z/XListView-Android/tree/master/src/me/maxwin/view
 *  XlistView:就是一个实现了上拉刷新,下拉加载的自定义控件,我们如果集成他,就可以很轻松实现这些效果
 *  1.搭建XlistView的环境(拷贝资源:java代码,XML布局,strings资源,图片)
 *  2.布局编写,初始化控件
 *  3.初始化数据(一般网络的数据,进行解析封装到集合中,去使用)
 *  4.相当于listVIew的使用,创建适配器,设置适配器等等,(此时效果不佳)
 *  5.要进行XlistVIew设置下拉刷新,上拉加载的开启操作
 *  6.设置XlistVIew设置下拉刷新,上拉加载的监听操作
 *  7.编写下拉刷新,上拉加载的业务逻辑代码
 *  8.关闭下拉刷新,上拉加载的业务逻辑
 *  注意:如果你想把数据放到listVIew顶部,那么这个数据就放到集合的0的位置就可以了.
 *  提示你改布局,不要动控件的ID,你直接改控件内容即可
 */

Xml代码  注意:包名不能出错,如果这有问题,会让你加载布局的那一行代码报错

<com.bawei.xlistviewlibrary.XListView
    android:id="@+id/xListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Activity代码实现


package com.example.xlistview2;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;

import com.bawei.xlistviewlibrary.XListView;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {

    private XListView lv;
    private ArrayList<String> list;
    private ArrayAdapter<String> mAdapter;

    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            //刷新listView
            mAdapter.notifyDataSetChanged();
            //隐藏头和尾
            closeXlistView();
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lv = (XListView) findViewById(R.id.xListView);

        //初始化数据
        initData();

        //开启下拉刷新
        lv.setPullRefreshEnable(true);
        //开启加载更多可用
        lv.setPullLoadEnable(true);

        //listView的适配器
        mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_2, android.R.id.text1, list);
        //设置适配器
        lv.setAdapter(mAdapter);

        //设置XlistView的上拉加载,下拉刷新的接口
        lv.setXListViewListener(this);

    }

    private void initData() {
        list = new ArrayList<>();
        for(int x=0; x<10; x++){
            list.add("希望我们都会越来越好!!");
        }
    }

    /**
     * 下拉刷新
     */
    @Override
    public void onRefresh() {

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {

                list.add(0,"今天是个好日子!!");
                handler.sendEmptyMessage(0);
            }
        },2000);

    }

    /**
     * 上拉加载
     */
    @Override
    public void onLoadMore() {

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                for(int x=0; x<10; x++){
                    list.add("心想的事儿都能成!!");
                }
                handler.sendEmptyMessage(0);
            }
        },2000);
    }

    //刷新给关闭的逻辑代码
    private void closeXlistView() {
        //停止加载更多
        lv.stopLoadMore();
        //停止刷新
        lv.stopRefresh();
        //更新时间   注意,你可以自己实现一个方法,改变时间,在这我就不多写了
        lv.setRefreshTime("2017/7/19");
    }
}

实现效果






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值