`

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);
	}

}

 

分享到:
评论

相关推荐

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

    在Android开发中,"下拉加载"和"上拉刷新"是常见的列表滚动交互功能,它们极大地提升了用户体验,使得用户可以方便地查看更多的数据而无需离开当前页面。本篇文章将详细解析这一技术,并提供相关源码参考。 下拉...

    Android ListView 下拉刷新、上拉加载

    总结,下拉刷新和上拉加载是Android应用中常见的功能,通过SwipeRefreshLayout和OnScrollListener可以方便地实现。自定义ListView则允许开发者更深入地控制列表的行为和视觉效果,以提供更加个性化的用户体验。在...

    Android Listview下拉刷新上拉加载源码

    "Android Listview下拉刷新上拉加载源码"这个资源可能包含了实现这些功能的具体代码示例。 下拉刷新功能允许用户通过手势向下拉动ListView的顶部来更新列表内容,通常用于获取最新数据。这种功能的实现通常依赖于第...

    android上拉刷新下拉加载

    在Android应用开发中,"上拉刷新"和"下拉加载"是常见的用户交互功能,它们使得用户可以方便地查看更多的内容或者获取更新的信息。这种功能常见于新闻、社交网络和电商应用等,极大地提升了用户体验。本文将深入探讨...

    Android下拉刷新上拉加载

    总的来说,"Android下拉刷新上拉加载"是Android应用中提升用户体验的关键特性,通过理解并熟练运用SwipeRefreshLayout等工具,开发者可以创建出更加动态和互动性强的移动应用。而`HlRefreshLayout-master`可能提供了...

    Android listView下拉刷新上拉刷新带阻尼效果-IT计算机-毕业设计.zip

    这个"Android listView下拉刷新上拉刷新带阻尼效果"的源码Demo是几年前的一个示例,旨在帮助学生理解和实现Android应用中的下拉刷新和上拉加载更多功能,同时加入了阻尼效果,提升用户体验。阻尼效果是指在用户滑动...

    Fragment+ListView下拉加载上拉刷新

    在Android应用开发中,"Fragment+ListView下拉加载上拉刷新"是一个常见的需求,它能够提升用户体验,使得用户可以方便地查看更多的数据而无需手动翻页。本篇将深入探讨如何实现这一功能,主要涉及的技术点是Fragment...

    Android下拉刷新上拉加载更多

    在Android应用开发中,"下拉刷新"和"上拉加载更多"是常见的用户体验功能,尤其是在数据列表场景中,如新闻、社交媒体或者电商应用。这两个功能使得用户可以方便地获取新内容或者查看历史数据,无需离开当前页面。...

    android 上拉加载数据下拉刷新源码

    在Android开发中,上拉加载和下拉刷新是常见的用户交互功能,特别是在列表视图(ListView)、滚动视图(RecyclerView)等展示大量数据时。这些功能提供了良好的用户体验,使得用户能够轻松地获取新的或者更新的数据。...

    android下拉刷新上拉加载

    在Android开发中,"下拉刷新"和"上拉加载更多"是常见的用户交互功能,尤其是在使用RecyclerView等列表视图时。RecyclerView是一个高效且灵活的布局管理器,它替代了ListView,提供了更好的性能和更多的定制选项。本...

    android 仿京东下拉刷新上拉加载

    在Android应用开发中,"android 仿京东下拉刷新上拉加载"是一个常见的功能需求,特别是在电商类应用中。这个标题表明我们正在讨论一个基于PullToRefresh开源库实现的京东风格下拉刷新和上拉加载的示例项目,即`...

    android listview 下拉刷新 上拉翻页 仿新浪微博客户端

    比如,XListView是一个非常受欢迎的Android下拉刷新和上拉加载更多库,它包含在你提供的压缩包文件"XListView-Android-master"中。 XListView的使用步骤如下: 1. 引入库:在项目级build.gradle文件中添加XListView...

    上拉刷新下拉加载

    上拉刷新和下拉加载是Android开发中常见的一种交互方式,尤其在列表或者滚动视图中,用于实现数据的无限滚动和实时更新。这个【标题】"上拉刷新下拉加载"显然指的是一个Android开发中的组件或库,可能是用于实现这种...

    Android下拉刷新上拉加载源码

    Android下拉刷新上拉加载源码 ....... @Override public void onRefresh() { mHandler.postDelayed(new Runnable() { @Override public void run() { start = ++refreshCnt; items.clear(); ...

    安卓下拉上拉刷新相关-ViewPager中嵌套ListView实现了下拉刷新和上拉更多解决了冲突的问题。.zip

    在安卓开发中,我们经常需要实现用户界面的交互效果,比如下拉刷新和上拉加载更多,这在列表视图(ListView)或者滚动视图(ViewPager)中是常见的功能需求。本示例主要探讨如何在ViewPager中嵌套ListView,同时实现...

    Android 自带下拉上拉动画刷新ListView

    总的来说,实现自带下拉上拉动画刷新的ListView需要对Android的事件处理、动画系统和数据加载有深入理解。这不仅可以提高应用的用户体验,也是Android开发者必备的一项技能。通过实践和学习开源库的源码,我们可以更...

    Android应用源码 ListView下拉刷新 Demo

    这个"Android应用源码 ListView下拉刷新 Demo"提供了一个实际的例子,帮助开发者了解如何在ListView中实现这一功能。 1. **SwipeRefreshLayout**:Android SDK 提供了一个名为SwipeRefreshLayout的布局容器,它是...

    Android下拉刷新上拉加载Demo(一分钟配置)

    本文将详细介绍如何在一分钟内配置一个基本的Android下拉刷新和上拉加载的Demo。 首先,你需要在项目中引入下拉刷新和上拉加载的库。最常用的库是Android官方提供的`SwipeRefreshLayout`,它提供了下拉刷新的功能,...

    Android完美的ListView下拉刷新 上拉更多源码

    在Android开发中,ListView是一种常用...通过以上分析,我们可以了解到在Android应用中实现ListView的下拉刷新和上拉加载更多功能的核心思路和代码实现方式。这不仅提高了用户体验,也是Android开发中的一项基本技能。

    上拉刷新和下拉加载更多

    上拉刷新和下拉加载更多是移动应用中常见的交互功能,尤其在列表或者滚动视图中,用户可以通过这两种方式获取更多的数据。它们提高了用户体验,使得用户无需离开当前页面即可查看新内容。本篇文章将深入探讨这两个...

Global site tag (gtag.js) - Google Analytics