XListView实现下拉刷新和上拉加载
来源:互联网 发布:gitlab for mac客户端 编辑:程序博客网 时间:2024/06/05 18:29
在做项目的时候,用了XListView实现下拉刷新和上拉加载,XListView用法简单但强大。下面就简单介绍一下如何使用
一:下载XListView,gittub的下载地址是:https://github.com/Maxwin-z/XListView-Android。
下载解压如下图
然后将这个文件引入项目中,与你的项目关联起来,如果不懂引用第三方库,请看http://blog.csdn.net/a_person_alone/article/details/50847823
二:代码段
布局文件mainxml,非常简单。
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <me.maxwin.view.XListView android:id="@+id/XlistView_ID" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" /></LinearLayout></span>其中android:cacheColorHint是设置XlistView加载时底部不会有默认的颜色,即实现透明。
主文件MainActivity
<span style="font-size:18px;">package com.zengfeng.xlistview;import java.util.ArrayList;import me.maxwin.view.XListView;import me.maxwin.view.XListView.IXListViewListener;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.widget.ArrayAdapter;public class MainActivity extends Activity implements IXListViewListener{private XListView xListView;//数据源private ArrayList<String> items=new ArrayList<String>();//匹配器private ArrayAdapter<String> adapter;//开始数据private int start=0;private static int refreshInt=0;//刷新private final int REFRESH_ACTION=1;//加载private final int LOAD_ACTION=2;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);//对集合进行填充数据add();//初始化xListView=(XListView) findViewById(R.id.XlistView_ID);adapter=new ArrayAdapter<>(this, R.layout.list_item,items);xListView.setAdapter(adapter);//设为true,上拉加载有效xListView.setPullLoadEnable(true);//设为true,下拉刷新有效xListView.setPullRefreshEnable(true);//设置监听xListView.setXListViewListener(this);}//对集合进行填充数据private void add(){for(int i=0;i!=20;++i){items.add("refresh "+(++start));}}//刷新加载完成调用的方式private void onLoad() {xListView.stopRefresh();xListView.stopLoadMore();xListView.setRefreshTime("刚刚");}@Override//继承IXListViewListener,进行下拉刷新public void onRefresh() {//进行异步new XlistViewAsyncTask().execute(REFRESH_ACTION);}@Override//继承IXListViewListener,进行上拉加载更多public void onLoadMore() {//进行异步new XlistViewAsyncTask().execute(LOAD_ACTION);}//异步加载类,跟新界面private class XlistViewAsyncTask extends AsyncTask<Integer, Void, Void>{@Overrideprotected Void doInBackground(Integer... params) {switch (params[0]) {case REFRESH_ACTION:refresh();break;case LOAD_ACTION: load();break;default:break;}return null;}@Overrideprotected void onPostExecute(Void result) {adapter.notifyDataSetChanged();onLoad();super.onPostExecute(result);}}//下拉更新方法private void refresh(){start=++refreshInt;//清除集合items.clear();//填充数据add();adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.list_item, items);xListView.setAdapter(adapter);}//上拉加载方法private void load(){add();}}</span>
MainActivity继承了IXListViewListener,并且实现了onRefresh()和onLoadMore()方法,这两个方法就是实现下拉刷新和上拉加载的,具体业务逻辑就在这里实现。主线程不能实现界面的更新,所以定义了一个XlistViewAsyncTask,所有消耗线程的都在这里实现。因为代码比较简单,注释都在上面了。
效果图
代码下载地址:http://download.csdn.net/detail/a_person_alone/9469775
1 0
- XListView实现上拉刷新下拉加载
- xlistview实现上拉加载,下拉刷新
- XListView实现下拉刷新和上拉加载
- MainActivity中Xlistview实现下拉刷新和上拉加载
- XListView上拉加载和下拉刷新
- xlistview上拉刷新和下拉加载
- 上拉加载和下拉刷新(XListView)
- 通过XListView实现上拉加载下拉刷新
- Xlistview实现上拉刷新下拉加载及item可单选
- XListView实现上拉加载下拉刷新,注意事项
- xListView下拉刷新和上拉加载更多
- 使用XListView框架进行上拉加载和下拉刷新
- 安卓中Xlistview的上拉加载和下拉刷新
- XListView下拉刷新和上拉加载更多详解
- Android XListView下拉刷新和上拉加载更多
- 简易的XListView下拉加载和上拉刷新
- XListView的上拉加载和下拉刷新
- XlistView上拉刷新下拉加载
- JAVA hashcode和equals为何要同时重写
- iOS中使用工厂模式定制cell
- c++第2次作业
- 软件工程
- Bzoj3834:[Poi2014]Solar Panels:数论,分块
- XListView实现下拉刷新和上拉加载
- 我的离职历程
- 【自学笔记】 css 如何改变光标,及各种光标
- Hive官方手册学习(三)Hive数据操作语言
- 51nod(动态规划入门---最大子段问题)
- leetcode Counting Bits
- RecyclerView使用详解(二)
- HDU3613 Best Reward 3连发之扩展KMP
- NodeJS + PhantomJS 抓取页面信息以及截图