转:http://www.iteye.com/topic/1111847
列表的显示需要三个元素:
1.ListVeiw 用来展示列表的View。
2.适配器 用来把数据映射到ListView上的中介。
3.数据 具体的将被映射的字符串,图片,或者基本组件。
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter
其中以ArrayAdapter最为简单,只能展示一行字。
SimpleAdapter有最好的扩充性,可以自定义出各种效果。
SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方便的把数据库的内容以列表的形式展示出来。
分页效果图:
<ListView android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="bottom">
<Button android:id="@+id/btnLeft"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:text="Previous Page" />
<Button android:id="@+id/btnRight"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:text="Next Page" />
</LinearLayout>
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 {
int VIEW_COUNT = 10;
int index = 0;
ListView listView;
Button btnLeft, btnRight;
View.OnClickListener clickListener;
MyAdapter myAdapter;
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" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
initView();
// 设置ListView的Adapter
myAdapter = new MyAdapter(this);
// TODO 此处是双向绑定吗?
listView.setAdapter(myAdapter);
clickListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnLeft:
leftView();
break;
case R.id.btnRight:
rightView();
break;
}
}
};
btnLeft.setOnClickListener(clickListener);
btnRight.setOnClickListener(clickListener);
changeButtonStatus();
}
public void initView() {
listView = (ListView) findViewById(R.id.list);
btnLeft = (Button) findViewById(R.id.btnLeft);
btnRight = (Button) findViewById(R.id.btnRight);
}
/**
* 点击左边的Button,表示向前翻页,索引值要减1.
*/
public void leftView() {
index--;
// 刷新ListView里面的数值。
myAdapter.notifyDataSetChanged();
changeButtonStatus();
}
/**
* 点击右边的Button,表示向后翻页,索引值要加1.
*/
public void rightView() {
index++;
// 刷新ListView里面的数值。
myAdapter.notifyDataSetChanged();
changeButtonStatus();
}
/**
* 变更btnLeft与btnRight按钮是否可用。
*/
public void changeButtonStatus() {
if (index <= 0) {
btnLeft.setEnabled(false);
} else if (data.length - index * VIEW_COUNT <= VIEW_COUNT) {
btnRight.setEnabled(false);
} else {
btnLeft.setEnabled(true);
btnRight.setEnabled(true);
}
}
// ListView的Adapter,这个是关键的导致可以分页的根本原因。
public class MyAdapter extends BaseAdapter {
Activity activity;
public MyAdapter(Activity a) {
activity = a;
}
/**
* 设置每一页的长度,默认的是View_Count的值。
*/
@Override
public int getCount() {
// ori表示到目前为止的前几页的总共的个数。
int ori = VIEW_COUNT * index;
if (data.length - ori < VIEW_COUNT) {
return data.length - ori;
} else {
return VIEW_COUNT;
}
}
/**
* 显示TextView data。
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// return addTestView(position);
TextView textView = new TextView(activity);
textView.setGravity(Gravity.LEFT);
textView.setText(data[position + index * VIEW_COUNT]);
return textView;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
}
}
- 大小: 33.8 KB
分享到:
相关推荐
本篇文章将详细讲解如何在Android中利用GridView实现分页加载功能。 首先,理解GridView的基本概念。GridView是ListView的一种变体,它按照指定的列数来排列子视图。默认情况下,GridView会一次性加载所有数据,这...
综上所述,实现Android中的小说分页功能涉及多个层面,包括自定义Adapter的设计、文本处理、UI布局、性能优化以及事件处理。通过这样的实践,我们可以创建一个用户友好的阅读体验,同时也可以锻炼对Android SDK和...
在Android开发中,ListView是展示大量数据常用的组件,而BaseAdapter是它的重要伙伴,用于将数据绑定到ListView的各个Item视图上。本教程通过一个Eclipse下的Android工程实例,详细讲解了BaseAdapter的使用方法以及...
本篇将详细讲解如何在Android中实现ListView的自动分页功能。 首先,理解分页的基本原理。分页是将大数据集分为多个小部分,每次只加载一部分数据到界面,用户滚动到页面底部时,再加载下一页。这种方式在Android中...
在这个"android listView 模拟物理分页Demo 按键"项目中,开发者通过按键实现了分页加载数据的功能,以便用户逐步查看大量内容,避免一次性加载所有数据导致的性能问题。这个Demo适合初学者学习如何在ListView中实现...
总之,这个"gridView实现SQLite分页表格"的示例涵盖了Android开发中的多个重要知识点,包括SQLite数据库操作、自定义Adapter、GridView的使用以及分页加载策略,对提升Android开发能力非常有帮助。通过深入学习和...
在这个特定的项目中,我们看到提到了“Android gridview 分页效果”,这表明开发者使用了GridView组件来实现分页显示数据。 GridView是Android中的一个视图组件,它可以用来展示多行多列的数据,通常用于创建类似...
在这个"android listview分页查询显示"的Demo中,我们将深入探讨如何实现这个功能,以及如何结合SQLite数据库进行数据管理。 首先,ListView的工作原理是通过Adapter来连接数据源和视图。Adapter负责将数据转化为...
本教程将详细讲解如何在Android中使用GridView实现分页功能,并结合ViewPager进行高效展示。 首先,我们需要了解GridView的基本用法。GridView继承自AbsListView,它会把数据项按照指定的列数排列成网格状。在XML...
本示例主要讲解如何在Android中利用ListView实现分页加载与刷新功能,并通过线程休眠模拟网络延迟,增强用户体验。以下是对这个主题的详细阐述: 一、ListView的基础 ListView是Android中的一个视图容器,它能够...
实现BaseAdapter的方法,如getCount(), getItem(), getItemId() 和 getView() } ``` 在`getView()`方法中,我们将创建的`list_item.xml`布局填充数据: ```java @Override public View getView(int position, ...
本篇将详细讲解如何实现Android表单的分页效果,以`Listview`为例进行说明。 首先,`Listview`是Android中常用的一种视图组件,用于显示一列可滚动的数据项。在处理大量数据时,它通过适配器(Adapter)机制与数据...
本篇文章将详细讲解如何实现Android ListView的滑动分页功能。 首先,理解滑动分页的基本原理。滑动分页基于“按需加载”的概念,即仅在用户滚动到列表底部时才请求服务器获取新的数据。这样避免了一次性加载所有...
这个"安卓Android源码——gridview分页效果.rar"文件很可能是包含了一个实现GridView分页效果的示例项目。分页在大数据量展示时尤为重要,因为它提高了用户体验,避免一次性加载大量数据导致应用性能下降或内存溢出...
本篇文章将深入探讨如何在Android中实现ListView的分页功能。 一、ListView分页原理 分页的基本思想是将大量数据分成若干个小部分(每部分称为一页),每次只加载一部分数据到ListView中,当用户滚动到底部时,再...
本文将详细介绍如何在Android中实现ListView的分页功能,并结合给定的文件名"AndroidListViewFenye"来解析相关代码实现。 1. **ListView的基本理解** - ListView是Android提供的一个视图组件,用于显示一组长列表...
BaseAdapter是Android开发中一个非常重要的适配器类,它为ListView、GridView等视图控件提供了自定义数据源的支持。在本测试中,我们主要关注`getView()`方法,它是BaseAdapter的核心,负责将数据转化为可显示的View...
在Android中,我们通常会继承BaseAdapter或使用已有的如ArrayAdapter等来创建自定义Adapter。 3. **分页加载原理**: - 分页加载(Pagination)是一种常见的优化策略,避免一次性加载大量数据导致内存压力和用户...
这个“Android应用源码之gridview分页效果.rar”压缩包文件应该包含了一个实现了GridView分页功能的示例应用源代码。下面我们将深入探讨GridView和其分页实现的相关知识点。 1. GridView基本概念: GridView继承自...
本篇文章将详细阐述如何在Android的SQLite数据库中实现分页读取。 首先,我们需要了解SQLite的基本操作,包括创建数据库、创建表、插入数据以及查询数据。以下是一个简单的示例: 1. **创建数据库**: 在Android...