第一步:到官网下载第三方包,拷贝到自己的项目中

https://github.com/Maxwin-z/XListView-Android

第二步:xml文件

<me.maxwin.view.XListView
     android:id="@+id/xListView"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:cacheColorHint="#00000000">
</me.maxwin.view.XListView>

第三步:java代码  

package com.gcp;  

import java.util.ArrayList;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ArrayAdapter;  

public class XListViewActivity extends Activity implements IXListViewListener {
    private XListView mListView;        //创建XListView对象
    private ArrayAdapter<String> mAdapter;
    private ArrayList<String> items = new ArrayList<String>();
    private Handler mHandler;       //用来模拟网络请求的(不要被迷惑)
    private int start = 0;
    private static int refreshCnt = 0;  

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        geneItems();
        mListView = (XListView) findViewById(R.id.xListView);
        mListView.setPullLoadEnable(true);//上拉刷新
        mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, items);//用模拟的数据填充系统的adapter
        mListView.setAdapter(mAdapter);//指定adapter
//      mListView.setPullLoadEnable(false);
//      mListView.setPullRefreshEnable(false);//下拉刷新  

        mListView.setXListViewListener(this);

        //给xListView条目设置监听事件
        mHandler = new Handler();
    }  

    private void geneItems() {
        for (int i = 0; i != 5; ++i) {
            items.add("refresh cnt " + (++start));
        }
    }  

    //或的数据后一定要加onLoad()方法,否则刷新会一直进行,根本停不下来
    private void onLoad() {
        mListView.stopRefresh();
        mListView.stopLoadMore();
        mListView.setRefreshTime("刚刚");
    }  

    @Override
    public void onRefresh() {
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                start = ++refreshCnt;
                items.clear();
                geneItems();
                // mAdapter.notifyDataSetChanged();
                mAdapter = new ArrayAdapter<String>(XListViewActivity.this, R.layout.list_item, items);
                mListView.setAdapter(mAdapter);
                onLoad();
            }
        }, 2000);
    }  

    @Override
    public void onLoadMore() {
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                geneItems();
                mAdapter.notifyDataSetChanged();
                onLoad();
            }
        }, 2000);
    }  

}

  

最新文章

  1. Java学习笔记-按值传递
  2. clang: error: linker command failed with exit code 1 (use -v to see invocati
  3. Mysql 插入部分字段问题
  4. Python学习笔记----序列共性
  5. 带缓存的输入输出-bufferedinputstream类与bufferedoutputstream类
  6. CentOS7_RAID5_LVM_SAMBA
  7. 用sql语句生成sqlserver数据库表的数据字典
  8. Flex开发自定义控件
  9. [转]Inside Swift
  10. WPF基础篇之连接数据库
  11. AVL树的Java实现
  12. 5.6版本GTID复制异常处理一例(转)
  13. faster rcnn
  14. javascript篇-slice(),splice(),split(),substring(),substr()的用法以及区别
  15. 初尝Web API《转》
  16. 自定义控件之万能Repeater源码
  17. 如何通过Fiddler模拟弱网进行测试
  18. python爬虫实战(三)--------搜狗微信文章(IP代理池和用户代理池设定----scrapy)
  19. Process Monitor工具找网吧广告
  20. 使用Openssl创建证书

热门文章

  1. Android Fragment 解析和使用
  2. 使用junit测试用例
  3. 简单的Linq笔记
  4. Javascript动画效果(三)
  5. Spark API 之 combineByKey(一)
  6. 未能加载文件或程序集&ldquo;System.Web.Http.WebHost, Version=4.0.0.0, &rdquo;或它的某一个依赖项。系统找不到指定的文件。
  7. IIS 架构解析
  8. IBM和传统IT的沦落
  9. Mac OS 的一点历史: Mac OS, Mac OSX 与Darwin
  10. .NET使用ZXing.NET生成中间带图片的二维码