Android ListView分页显示

简介:

为了能更直接的对应主题,下面代码不完整,所以请不要直接复制粘贴到IDE,重点代码加粗显示,代码中有注释.

public class MyActivity extends Activity implements OnScrollListener {

// 参数

/** 数据源 */

private List<Joke> data;



/** 初始显示的页数 */

private int pageNum = 1;

/** 每一次显示多少个 */

private static final int pageCount = 20;



/** MyAdapter引用 */

private MyAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 隐藏标题

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.listing);

}

/**

 * 自定义ListView的Adapter类

 * 

 * @author Lion

 * 

 */

class MyAdapter extends BaseAdapter {

// 数据源

private List<Joke> data;

public MyAdapter(List<Joke> data) {

super();

this.data = data;

}

@Override

public int getCount() {

// 返回该显示的数据个数

// pageCount 一页显示多少个

// pageNum 第几页

return pageCount * pageNum;

}

@Override

public Object getItem(int position) {

return data != null ? data.get(position) : null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

return convertView;

}

}

/**

 * OnScrollListener接口实现方法

 */

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

// 当不滚动时

if (scrollState == SCROLL_STATE_IDLE) {

// 判断到底部滚动

if (view.getLastVisiblePosition() == (view.getCount() - 1)) {

if (data.size() - pageNum * pageCount <= pageCount) {

// 这种情况就是末尾了,也就是集合(数据源)里面没有数据了

Toast.makeText(getApplicationContext(), "已至末尾...",

Toast.LENGTH_SHORT).show();

} else {

// 显示页数+1

pageNum++;

// 刷新ListView

adapter.notifyDataSetChanged();

}

}

}

}



/**

 * OnScrollListener接口实现方法

 */

@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

}

}


相关文章
|
API Android开发 开发者
Android UI设计: 什么是RecyclerView?为什么它比ListView更好?
Android UI设计: 什么是RecyclerView?为什么它比ListView更好?
248 2
|
4月前
|
数据库 Android开发
Android使用EditText+Listview实现搜索效果(使用room模糊查询)
本文介绍如何在Android中使用EditText与ListView实现搜索功能,并结合Room数据库完成模糊查询。主要内容包括:Room的模糊查询语句(使用`||`代替`+`号)、布局美化(如去除ListView分割线和EditText下划线)、EditText回车事件监听,以及查询逻辑代码示例。此外,还提供了相关扩展文章链接,帮助读者深入了解ListView优化、动态搜索及Room基础操作。
307 65
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
1156 1
|
API Android开发 开发者
`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView
【6月更文挑战第26天】`RecyclerView`是Android API 21引入的UI组件,用于替代ListView和GridView。它提供高效的数据视图复用,优化的布局管理,支持多种布局(如线性、网格),并解耦数据、适配器和视图。RecyclerView的灵活性、性能(如局部刷新和动画支持)和扩展性使其成为现代Android开发的首选,特别是在处理大规模数据集时。
192 2
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
528 2
|
XML Java Android开发
如何美化android程序:自定义ListView背景
如何美化android程序:自定义ListView背景
134 2
|
XML 编解码 Java
Android控件之高级控件——ListView、cardView、屏幕适配
Android控件之高级控件——ListView、cardView、屏幕适配
178 0
|
XML Android开发 数据格式
安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)
安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)
134 0
|
Java Android开发
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
|
XML Java Android开发
Android优化版ListView(附源代码)
本文是博主对Adapter(适配器)的一些理解,为了加深对Adapter的理解以及记录自己的阶段学习而写,同时也适合初学者阅读,参考本条博客的逻辑进行学习。
189 0

热门文章

最新文章