ListView 实现上一页下一页功能
来源:互联网 发布:淘宝买东西安装工人 编辑:程序博客网 时间:2024/04/29 11:27
代码
Activity/Fragment中
//定义当前的页码 默认第0页public static int PAGE_NOW = 0;//设置每一页的item个数 可以随意设置public static int ITEM_COUNT = 6;/** * *中间无关的代码省略... */ @Overridepublic void onClick(View v) { switch (v.getId()) { case R.id.nota_prepage: prePage(); break; case R.id.nota_nextpage: nextPage(); break; }}//下一页private void nextPage() { PAGE_NOW++; mAdapter.notifyDataSetChanged(); checkButton();}//上一页private void prePage() { PAGE_NOW--; mAdapter.notifyDataSetChanged(); checkButton();}//设置两个按钮是否可用public void checkButton() { //如果页码已经是第一页了 if (PAGE_NOW <= 0) { mNotaPrepage.setEnabled(false); //如果不设置的话,只要进入一次else if ,那么下一页按钮就一直是false,不可点击状态 mNotaNextpage.setEnabled(true); } //值的长度减去前几页的长度,剩下的就是这一页的长度,如果这一页的长度比View_Count小,表示这是最后的一页了,后面在没有了。 else if (mDatas.size() - PAGE_NOW * ITEM_COUNT <= ITEM_COUNT) { mNotaNextpage.setEnabled(false); mNotaPrepage.setEnabled(true); } else { //否则两个按钮都设为可用 mNotaPrepage.setEnabled(true); mNotaNextpage.setEnabled(true); }}
Adapter中
重写 getCount()方法
@Overridepublic int getCount() { // 数据的总数 int ori = ITEM_COUNT * PAGE_NOW; //值的总个数-前几页的个数就是这一页要显示的个数,如果比默认的值小,说明这是最后一页,只需显示这么多就可以了 if (mDatas.size() - ori < ITEM_COUNT) { return mDatas.size() - ori; } else { //如果比默认的值还要大,说明一页显示不完,还要用换一页显示,这一页用默认的值显示满就可以了。 return ITEM_COUNT; }}
getView方法
@Overridepublic View getView(int i, View view, final ViewGroup viewGroup) { ViewHolder holder; if (view == null) { view = mInflater.inflate(R.layout.item_document_lv, viewGroup, false); holder = new ViewHolder(view); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } /** * 括号中的值是获取到item的准确索引 */ DocumentBean bean = (DocumentBean) mDatas.get(i + ITEM_COUNT * PAGE_NOW); holder.document_item_number.setText(bean.getNumber()); holder.document_item_filename.setText(bean.getFileName()); holder.document_item_filesize.setText(bean.getFileSize() + ""); holder.document_item_uploadname.setText(bean.getUploadName()); holder.document_item_look.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(viewGroup.getContext(), "查看", Toast.LENGTH_SHORT).show(); } }); holder.document_item_download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(viewGroup.getContext(), "下载", Toast.LENGTH_SHORT).show(); } }); return view;}
设置Adapter就行了
mNotaLv = (ListView) inflate.findViewById(R.id.nota_lv); mDatas = new ArrayList<>(); //假数据 for (int i = 0; i < 8; i++) { mDatas.add(new DocumentBean(i + "", "随意字符", 12, "第一次")); } mAdapter = new DocumentAdapter(getContext(), mDatas); mNotaLv.setAdapter(mAdapter);
阅读全文
0 0
- ListView 实现上一页下一页功能
- listview实现上一页下一页
- CDSN上一页下一页功能模仿
- jquery实现上一页 下一页
- jquery实现上一页下一页
- jquery实现上一页下一页插件
- 分页实现-----首页、上一页、下一页、最后一页
- DataGridView中实现上一页,上一行,下一行,下一页的功能
- 毕业设计(十二)---后台用户管理(2)之- 分页 实现上一页,下一页,跳页功能
- php如何实现上一页下一页的功能 (不是列表页 是内容页)
- js上一页,下一页
- 上一页下一页js
- java实现的分页方法(上一页下一页)
- 通过javascript来实现上一页 ,下一页的禁用
- gridview实现:上一页、下一页、跳转到某一页
- java 实现JSP页面上一页及下一页封装
- PHP实现上一页下一页翻页代码实例
- php+mysql实现分页:上一页,下一页
- Java项目中日期类型转换成Cron表达式
- LeetCode17 Letter Combinations of a Phone Number(Python and Java)
- 关于gnuplot每次启动都要配置环境变量的问题(Linux系统中)
- 解析xml字符串
- DeepLearning-loss探讨
- ListView 实现上一页下一页功能
- ELK5.x搭建全纪录
- REST API 和WebService有哪些不同以及什么是Rpc协议
- Mac平台git出现xcrun: error: invalid active developer path
- Theano安装与测试
- php5.5.12扩展
- 《设计模式》学习笔记0——说明
- 新路程------hi3516 tmp过小导致更新img失败
- PAT