`

android开发笔记-ListView动态加载数据

 
阅读更多

项目开发之需要, 做一个ListView分页显示, 动态加载数据到ListView. 需求是: 每一次ListView显示20条数据, 当滚动条滑动到最后一条的时候, ListView会自动到后台请求数据并加载到ListView. 一开始, 没有思路, 后来到网上搜了下:步骤是这样的. 1. 在ListView的 OnScrollListener 事件中:

@Override
			public void onScrollStateChanged(AbsListView view, int scrollState) {
				// TODO Auto-generated method stub
				if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
					//Log.i(TAG, "获取第一个可见位置:" + listPos);
					listPos = mListView.getSelectedItemPosition(); // ListPos记录当前可见的List顶端的一行的位置
				}
			}

 然后, 在数据设置到ListView的adapter后 , 设置ListView的setSelection(listPos)方法;

 

这种方式虽然能够实现以上功能 ,但:效果不明显, 定位不准确, 而且ListView会给人一种刷新的感觉, 而不是异步后台加载数据.

 

后来,通过网上不断的搜索 , 终于找到了另一种比较合理的方法

 

1. 实例化ListView

//1. 获取ListView
	mListView = getListView();
	setupListHeader(true);

	mListAdapter = new NewsListViewAdapter(this,
				((Foursquared) getApplication()).getRemoteResourceManager());
	//2. 设置mListView的适配器: adapter
	mListView.setAdapter(mListAdapter);

 

2. ListView添加滑动事件:

// 添加滚动条滑动事件
		mListView.setOnScrollListener(new AbsListView.OnScrollListener() {

			@Override
			public void onScrollStateChanged(AbsListView view, int scrollState) {				
			}

			@Override
			public void onScroll(AbsListView view, int firstVisibleItem,
					int visibleItemCount, int totalItemCount) {			
					
							
						loadMoreGIF.setVisibility(View.VISIBLE);
							
						if (mStateHolder.getIsRunningTask() == false) {
                                                       //mSearchTask 是一个继承了AysncTask的线程.向后台加载数据.
							mSearchTask = new SearchTask(activity, query, sleepTimeInMs);
			                                mSearchTask.execute();
						
					        }
				}

			}
		});

 

3. 后台数据加载完之后, 将结果添加到Adapter. 然后调用: Adapter的notifyDataSetChanged()方法.

 

注意: 数据加载完, 并设置Adapter值后, 不不需要调用ListView.setAdapter(adapter).方法. 否则ListView会重新刷新一遍, 就不会有异步加载数据的效果. 只需修改adapter值之后, 调用notifyDataSetChanged()即可.

 

 

分享到:
评论

相关推荐

    Android自学笔记-11-listview简单例子

    在Android开发中,ListView是应用界面设计中非常常见的一种组件,它用于展示可滚动的、多行数据列表。本自学笔记将重点讲解如何在Android项目中创建并使用ListView,包括基本的设置、数据绑定和适配器的使用。 首先...

    Android开发笔记

    同时,这份笔记可能还会涵盖如何使用Adapter来连接数据源和ListView、RecyclerView等列表视图,实现数据的动态加载和滚动效果。 最后,"新版Android开发教程&笔记四--Dalvik ADB.pdf"讲解了Dalvik虚拟机和Android ...

    android开发笔记5

    "Android开发笔记5"专注于Real6410开发板的使用,旨在帮助开发者快速提升Android技术能力。本文将深入解析笔记中的关键知识点,包括Android的基础UI编程。 首先,让我们关注"read me.doc"。这个文档通常包含了项目...

    新版Android开发教程 笔记7--基础UI编程1

    本教程“新版Android开发教程 笔记7--基础UI编程1”着重于引导开发者掌握构建基本Android UI的基础知识。下面将详细阐述其中的关键知识点。 1. **Android布局(Layouts)**: Android提供了多种布局管理器,如线性...

    android之listview学习笔记附源码

    在Android开发中,ListView是应用界面设计中非常常见的一种组件,它用于展示大量可滚动的数据列表。本学习笔记将深入探讨ListView的使用方法,并提供相关的源码示例,帮助开发者更好地理解和掌握ListView的精髓。 ...

    《Android应用开发揭秘》读书笔记

    《Android应用开发揭秘》读书笔记不仅是一份个人学习历程的记录,更是一部深入浅出的Android开发指南。本书籍及笔记覆盖了从基础知识到高级应用的广泛内容,为初学者和有经验的开发者提供了宝贵的资源。 ### ...

    Android学习笔记之ListView复用机制详解

    在Android开发中,ListView是一个非常常见的控件,用于展示大量数据列表。然而,为了提高性能和减少内存消耗,ListView引入了复用机制。本篇文章将深入解析ListView的复用机制,帮助开发者更好地理解和优化应用。 1...

    Android基础笔记

    Android 基础笔记是 Android 开发的入门知识点总结,涵盖了 Android 开发的基础知识点,从 Android 发展史到自定义 ContentProvider 的实现。 一、Android 发展史 Android 的发展史可以追溯到 2003 年,最初由 ...

    新版Android开发教程 笔记十--基础UI编程

    在Android开发中,用户界面(UI)编程是至关重要的,因为它直接影响到用户的体验和应用程序的易用性。这篇笔记将深入探讨Android基础UI编程的关键概念和技术。以下是一些主要的知识点: 1. **布局(Layouts)**:...

    Android Training学习笔记——Navigation 参考源码(ListView版)

    Android Training是Google提供的一系列教程,旨在帮助开发者提升Android开发技能。这篇文章是Android Training的一部分,专门讲解了如何结合Navigation和ListView实现高效的用户导航。 4. **源码分析** 文章提供...

    Android--NoteBook

    通过适配器(Adapter)将数据与视图绑定,可以动态加载和更新列表内容。 此外,事件监听和回调机制也是Android开发中的常见概念。在NoteBook中,开发者可能为按钮添加了OnClickListener,当用户点击按钮时触发相应...

    Android ListView下拉刷新 Demo.zip

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。ListView的一个常见需求是实现下拉刷新功能,以便用户可以获取最新的数据。本教程将详细讲解如何在Android中实现ListView的下拉刷新功能,主要...

    Android学习笔记(十九):建立自己的ListView.doc

    在Android开发中,ListView是一种常用的控件,用于显示可滚动的项目列表。在本篇Android学习笔记中,我们将探讨如何建立自己的ListView,即创建一个自定义的ListView子类,以便实现特定的UI样式和功能。这通常涉及到...

    android开发资料大全

    新版Android开发教程及笔记-完整版 《Android中文教程》中文版 《android基础教程合集》 Android实例教程 会员贡献索引贴 实用Android开发工具和资源精选 APK权限大全 - Android必懂知识 最无私的Android资料...

    Android ListView常见

    在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。它的高效性和可定制性使得它在各种应用中广泛应用。本篇笔记将深入探讨ListView的使用、自定义及优化,结合源码分析,帮助你更好地理解和...

    listview的小demo

    综上所述,ListView是Android开发中不可或缺的一部分,熟练掌握其基本使用和优化技巧,能帮助开发者更好地处理大量数据的展示和交互。通过实践ListViewDemo项目,初学者可以加深对这些知识点的理解和应用。

    Android应用开发_学习笔记.doc

    【Android应用开发学习笔记】 Android应用开发是移动设备软件开发的重要组成部分,主要涉及四大组件、UI设计以及系统交互。本文将深入探讨这些关键知识点。 **一、Android四大组件** 1. **Activity(活动)** - ...

    Android移动应用开发学习笔记(listview和适配器的使用)

    在Android移动应用开发中,ListView是一个非常重要的组件,它用于展示大量的列表数据,适用于数据项较多且需要滚动查看的情况。本篇文章将详细讲解ListView及其适配器的使用,包括基础用法、性能优化以及不同类型的...

    ANDROID学习笔记4

    在Android开发中,`ListView`是一种非常重要的UI组件,它能够显示一个可以滚动的列表,支持单选或多选模式。本节将详细介绍`ListView`的基本用法、自定义适配器以及一些实用的扩展技巧。 ##### 1. ListView基本概念...

    Android 随手记-IT计算机-毕业设计.zip

    项目可能有一个自定义的Adapter,用于将笔记数据加载到ListView或RecyclerView。 9. **Material Design**:遵循Google的Material Design指南,可以提供现代且一致的用户体验。项目可能应用了Material Design组件和...

Global site tag (gtag.js) - Google Analytics