`

Android 列表 下拉加载 上拉刷新 附源码

 
阅读更多
/*网上找的源码,做了些修改。至于原作者是谁我也不清楚了,不过看注释应该不是国内的,反正我这个菜鸟没这种水平。
**修复了上次刷新时间显示及刷新丢失当前第一项的问题。加了一组假数据测试localDate。
*贴出的是主界面的代码,源码见附件
**/

package com.refreash;

import android.os.Bundle;
import android.app.Activity;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import com.widget.CustomListView;
import com.widget.CustomListView.IXListViewListener;

import android.os.Handler;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class MainActivity extends Activity implements IXListViewListener {
	private CustomListView mListView;
	private ArrayAdapter<String> mAdapter;
	private ArrayList<String> items = new ArrayList<String>();
	public SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private Handler mHandler;
	private int start = 0;
	private String date;
	ArrayList<String> localdate=new ArrayList<String>();//假数据数组
	
	//给假数组赋值
	private void initDate(){
		for(int i=0;i<100;i++){
			this.localdate.add(i+"");
		}
	}
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initDate();//获取数据
		geneItems();//加载数据
		mListView = (CustomListView) findViewById(R.id.xListView);
		MainActivity.this.date=sdf.format(new Date());		
		mListView.setRefreshTime(date);//获取首次更新时间
		mListView.setPullLoadEnable(true);
		mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, items);
		mListView.setAdapter(mAdapter);
//		mListView.setPullLoadEnable(false);
//		mListView.setPullRefreshEnable(false);
		mListView.setXListViewListener(this);
		mHandler = new Handler();
	}
     
	private void geneItems() {
		for (int i = 0; i != 20; ++i) {//每次加载二十项
			if(start<localdate.size()){
			items.add("refresh cnt " + localdate.get(start++).toString());
			}else{
				Toast.makeText(getApplicationContext(), "已经到底啦^_^", 2000).show();
				return ;
			}
		}
	}

	private void onLoad() {
		mListView.stopRefresh();
		mListView.stopLoadMore();
		mListView.setRefreshTime(date);
		MainActivity.this.date=sdf.format(new Date());
	}
	
	@Override
	public void onRefresh() {
		mHandler.postDelayed(new Runnable() {
			@Override
			public void run() {
				/**
				 * .....
				 * initDate();
				 * ......
				 * if(返回值==null){
				 * start=0;
				 * toast.maketext(..."没有最新消息"...).show();
				 * ......
				 * }else{
				 * start=0;
				 * items.clear();
				 * ......
				 * ......
				 * }
				 * */
				start = 0;
				items.clear();
				geneItems();
				// mAdapter.notifyDataSetChanged();
				mAdapter = new ArrayAdapter<String>(MainActivity.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);
	}

}

 

分享到:
评论

相关推荐

    安卓桌面应用EyeRoom.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    仿随手记的炫酷饼图.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    webview重载使用&自定义网址.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    C语言学习工程和C语言项目.zip

    C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。 [5] C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

    带暂停功能倒计时TimeCountDown盒子适用.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    Google翻译.txt

    Google翻译.txt

    汽车车灯检测机械臂设计.doc

    汽车车灯检测机械臂设计.doc

    网络购物中心项目源码.rar

    网络购物中心项目源码.rar是一个压缩文件包,包含了一个基于Web技术的电子商务平台的全部源代码和相关资源。这个源码包旨在提供一个功能全面、界面友好的在线购物体验,它集成了商品浏览、搜索、购买、支付以及用户管理等核心电商功能。该项目采用了当下流行的开发框架和编程语言,比如使用HTML5, CSS3, JavaScript, PHP和MySQL数据库等技术,确保了网站的响应速度和跨浏览器兼容性。对于即将毕业的学生或者正在寻找实践项目的课程设计者来说,这个源码包是一个宝贵的资源。它不仅提供了一个实际应用的平台以供学习和研究,还允许用户根据需求进行定制和扩展,如添加新的功能模块或优化现有的代码结构。此外,项目文档详细记录了系统架构、功能实现和部署流程,为初学者提供了清晰的指引。通过分析和修改这份源码,学生可以深化对Web开发的理解,提高编程能力,并且有机会将理论知识转化为实际操作技能。此源码包适合作为计算机科学与技术、软件工程、信息技术等相关专业的毕业设计或课程设计项目,能够帮助学生在完成学业的同时,积累实战经验,增强就业竞争力。无论是作为学习的起点,还是作为未来职业生涯的一个跳板,网络购物

    C语言仓库,存储的是C语言代码.zip

    C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。 [5] C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

    Sora AI Videos的案例站点

    这是Sora AI Videos的案例站点,使用此项目可以帮助你快速构建Sora AI的演示项目。

    2015园林业务齐发展,区域拓展加速(20页).zip

    2015园林业务齐发展,区域拓展加速(20页).zip

    机械臂的物体识别与抓取技术研究.pdf

    机械臂的物体识别与抓取技术研究.pdf

    使用不同的超导间隙模型拟合从穿透深度获得的超流体密度数据matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    一个年终抽奖系统,可以根据你需要的去设置

    年终抽奖系统的模型,需要需要特殊定值,可以留言

    埃博拉优化搜索算法matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    ECommerceCrawlers-master.zip

    实战多种网站、电商数据爬虫。包含:淘宝商品、微信公众号、大众点评、闲鱼、阿里任务、百度贴吧、豆瓣电影、包图网、全景网、豆瓣音乐、某省药监局、搜狐新闻、机器学习文本采集、fofa资产采集、汽车之家️️️

    viewflow视图切换效果.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    可二次开发广州酒店信息管理平台.rar

    广州酒店信息管理平台是一个针对酒店行业设计的综合性信息管理系统,旨在通过现代化的信息技术手段提高酒店运营效率、改善客户体验,并为管理者提供决策支持。该平台以用户友好的界面和强大的数据处理能力为特点,涵盖了客房预订、入住管理、餐饮服务、库存管理、财务报表等多个模块,实现了酒店业务流程的自动化和智能化。作为毕业设计或课程设计项目,这个平台提供了丰富的功能和灵活的二次开发环境。学生可以根据自己的专业知识和兴趣,对现有系统进行深入分析,提出创新改进方案,或者添加新的功能模块。例如,可以通过集成人工智能算法来优化房间分配策略,利用大数据分析技术预测市场趋势,或者开发移动端应用以便客户能够随时随地访问服务。源码文件包中包含了完整的系统架构设计文档、数据库结构、前后端代码以及详细的API文档,使得学生能够快速理解系统运作机制并开始二次开发。此外,平台采用了模块化的设计思想,便于学生按需修改或扩展功能,同时也有助于培养学生的软件工程实践能力和解决实际问题的能力。总之,广州酒店信息管理平台不仅为学生提供了一个实战演练的机会,而且通过实际操作加深了对酒店管理业务和软件开发流程的理解,是一份极具挑战性和实用

    百度翻译.txt

    百度翻译.txt

    python源码python基础

    python源码python基础提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics