列表的显示需要三个元素:
1.ListVeiw 用来展示列表的View。
2.适配器 用来把数据映射到ListView上的中介。
3.数据 具体的将被映射的字符串,图片,或者基本组件。
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter
其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。
SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
当数据罗列过多的时候,我们需要Listview分页显示,此时怎么办呢
下面一个简单的例子介绍一下
package com.ideasandroid.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
public class listMoreTest extends Activity {
ListView lv;
Button btnLeft, btnRight;
View.OnClickListener cl;
MoreAdapter ma;
String[] data = {
"0","1","2","3","4","5","6","7","8","9","10",
"11","12","13","14","15","16","17","18","19","20",
"21","22","23","24","25","26","27","28","29","30",
"31","32","33","34","35","36","37","38","39","40",
"41","42","43","44","45","46","47","48","49","50",
"51","52","53","54","55","56","57","58","59","60",
"61","62","64","64","65","66","67","68","69","70",
"71","72","73","74","75","76","77","78","79","80",
"81","82","83","84","85","86","87","88","89","90",
"91","92","93","94","95","96","97","98","99","100"
};
//用于显示每列5个Item项。
int VIEW_COUNT = 5;
//用于显示页号的索引
int index = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//加载Listview和2个Button
initView();
//设置ListView的Adapter
ma = new MoreAdapter(this);
lv.setAdapter(ma);
//此处是双向绑定吗?
cl = new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.btnLeft:
leftView();
break;
case R.id.btnRight:
rightView();
break;
}
}
};
//添加2个Button的监听事件。
btnLeft.setOnClickListener(cl);
btnRight.setOnClickListener(cl);
//检查2个Button是否是可用的
checkButton();
}
public void initView(){
lv = (ListView)findViewById(R.id.list);
btnLeft = (Button)findViewById(R.id.btnLeft);
btnRight = (Button)findViewById(R.id.btnRight);
}
//点击左边的Button,表示向前翻页,索引值要减1.
public void leftView(){
index--;
//刷新ListView里面的数值。
ma.notifyDataSetChanged();
//检查Button是否可用。
checkButton();
}
//点击右边的Button,表示向后翻页,索引值要加1.
public void rightView(){
index++;
//刷新ListView里面的数值。
ma.notifyDataSetChanged();
//检查Button是否可用。
checkButton();
}
public void checkButton(){
//索引值小于等于0,表示不能向前翻页了,以经到了第一页了。 //将向前翻页的按钮设为不可用。
if(index <=0){
btnLeft.setEnabled(false);
}
//值的长度减去前几页的长度,剩下的就是这一页的长度,如果这一页的长度比View_Count小,表示这是最后的一页了,后面在没有了。
//将向后翻页的按钮设为不可用。
else if(data.length - index*VIEW_COUNT <= VIEW_COUNT){
btnRight.setEnabled(false);
}
//否则将2个按钮都设为可用的。
else {
btnLeft.setEnabled(true);
btnRight.setEnabled(true);
}
}
//ListView的Adapter,这个是关键的导致可以分页的根本原因。
public class MoreAdapter extends BaseAdapter {
Activity activity;
public MoreAdapter(Activity a){
activity = a;
}
//设置每一页的长度,默认的是View_Count的值。
@Override
public int getCount() {
// TODO Auto-generated method stub
//return data.length
//ori表示到目前为止的前几页的总共的个数。
int ori = VIEW_COUNT * index;
//值的总个数-前几页的个数就是这一页要显示的个数,如果比默认的值小,说明这是最后一页,只需显示这么多就可以了
if(data.length - ori < VIEW_COUNT ){
return data.length - ori;
}
//如果比默认的值还要大,说明一页显示不完,还要用换一页显示,这一页用默认的值显示满就可以了。
else {
return VIEW_COUNT;
}
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//return addTestView(position);
TextView tv = new TextView(activity);
tv.setGravity(Gravity.CENTER);
//TextView要显示的是当前的位置+前几页已经显示的位置个数的对应的位置上的值。
tv.setText(data[position+index*VIEW_COUNT]);
return tv;
}
}
}
- 大小: 37.6 KB
分享到:
相关推荐
"ListView分页显示 加载更多"的功能是优化用户体验的重要手段,它允许用户在滚动到列表底部时动态加载更多的数据,而不是一次性加载所有内容,从而节省内存资源并提高应用性能。 在实现ListView分页加载更多功能时...
"ListView分页显示上一页和下一页"这一主题,就是讨论如何实现ListView在用户滚动到列表底部时自动加载下一页数据,同时提供上一页的切换功能。 一、分页原理 分页的基本思想是将大量数据分为多个小部分(页)来...
本示例"HeaderBottomListDemo"专注于实现ListView的分页加载功能,这在处理大数据集时尤为重要,因为它可以提高应用性能并优化用户体验。分页加载允许用户滚动到列表底部时加载更多数据,而不是一次性加载所有内容,...
本文将详细讲解如何在Android中实现ListView的分页显示。 一、ListView基础 ListView是Android提供的一个可滚动视图,用于展示多个同类型的项。每个项通常由一个布局文件(XML)定义,通过Adapter进行数据绑定。...
android listview 分页显示 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.addrlistview); // 加载Listview和2个Button ...
在这个"android listview 分页显示 demo"中,我们将探讨如何实现ListView的分页加载功能,同时利用Map进行图片缓存,以提高用户体验。 首先,分页加载是解决大数据量列表滚动卡顿的有效手段。在用户滚动到列表底部...
1. **ListView分页显示**:分页是将大数据集分割成小块(页面)来加载和显示,避免一次性加载所有数据导致内存消耗过高和应用响应变慢。在Android中,通常通过在ListView的Adapter中实现这个功能。例如,当用户滚动...
分页显示是优化大型数据集显示的重要手段,它可以提高用户体验,避免一次性加载过多数据导致的内存压力和界面卡顿。本资源提供了一个自定义ListView结合分页功能的实践案例,包括代码实现和数据库操作,对于学习和...
本篇将详细讲解如何实现ListView的分页显示。 首先,我们需要理解ListView的三个核心组成部分: 1. **ListView**:这是一个视图容器,用于展示一列可滚动的项目。每个项目都是由ListView的子视图(如TextView、...
基于VB6+ADO+ListView制作的一个数据库分页显示程序 基于VB6+ADO+ListView制作的一个数据库分页显示程序是使用VB6开发的一款数据库分页显示程序,使用ADO(ActiveX Data Objects)技术访问数据库,并使用ListView...
本篇文章将详细介绍如何在Android中实现ListView的分页显示。 首先,我们需要理解分页的基本概念。分页是将大量数据分割成若干小部分,每次只加载一部分到ListView中,用户滚动到底部时再加载下一页。这种加载方式...
在VB(Visual Basic)开发中,ListView控件是一种常见的组件,用于显示列表形式的数据,如文件、联系人等。在处理大量数据时,为了提高用户体验和应用程序性能,通常需要实现数据分页功能。本篇文章将深入探讨如何在...
在这个"android listview分页查询显示"的Demo中,我们将深入探讨如何实现这个功能,以及如何结合SQLite数据库进行数据管理。 首先,ListView的工作原理是通过Adapter来连接数据源和视图。Adapter负责将数据转化为...
1. 分页原理:ListView分页通常基于“懒加载”概念,即只有当用户滚动到列表底部时,才会加载更多的数据。这种方式可以减少初次加载时的数据量,提高应用性能。 2. 实现步骤: - 数据源:首先,你需要创建一个数据...
实现ListView分页通常需要以下步骤: 1. **创建数据源**:首先,你需要一个可分页的数据源。这通常是一个包含分页信息的ObservableCollection,如PagedCollectionView或自己实现的分页数据集。 2. **设置View**:...
在ListView分页加载中,我们通常会结合PagerAdapter或FragmentPagerAdapter来创建一个滑动页面的效果,这样用户可以逐页浏览内容,而不是一次性看到所有数据。这两种适配器用于在ViewPager中管理页面,与ListView...
一、ListView分页原理 分页的基本思想是将大量数据分成若干个小部分(每部分称为一页),每次只加载一部分数据到ListView中,当用户滚动到底部时,再加载下一页的数据。这样既能保证界面的流畅性,又能有效利用系统...
ListView的数据分页加载功能是提高用户体验和优化应用性能的关键技术。本篇文章将深入探讨如何在Android中实现ListView的分页加载。 首先,理解分页加载的概念至关重要。分页加载是指在用户滚动列表到底部时,应用...
本示例"简单ListView分页Demo"旨在教你如何实现一个具有分页功能的ListView,以展示不同类型的音乐,如流行音乐和古典音乐,并根据类型显示不同数量的条目。我们将探讨以下几个关键知识点: 1. **ListView基础**: ...
主题:ListView分页(带图片)显示用法案例,主题:ListView分页(带图片)显示用法案例