最近写了个上一页下一页显示Demo,感觉还是比较好实现!通过设置listview的每页item显示的个数,然后控制返回item的count实现点击按钮上一页下一页效果.

一,布局文件(若是想实现滑动的上一页和下一页切换直接使用ViewPager嵌套listview)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.tstest.www.pagershow.MainActivity"><TextView
        android:id="@+id/result"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="为你搜索到如下结果:"android:textSize="18sp" /><TextView
        android:id="@+id/num"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="2/4"android:textSize="18sp" /><LinearLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><Button
            android:id="@+id/pre_pager"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="上一页" /><Button
            android:id="@+id/nex_pager"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:text="下一页" /></LinearLayout><ListView
        android:id="@+id/lv"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

二,实现代码,这个demo做的是当在第一页时隐藏上一页按钮,最后一页时隐藏下一页按钮.中间上一页按钮和下一页按钮皆显示.

package com.tstest.www.pagershow;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener{private List<NearlySearchBean> list=new ArrayList<>();private String name[]={"gaga","嘎嘎","他们吗","发密码","摩尔玛","陪我"};private ListViewAdapter adapter;private Button prePager, nexPager;private TextView num;private NearlySearchBean nearlySearchBean;int index=0;int pagerCount=4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);prePager = (Button) findViewById(R.id.pre_pager);nexPager = (Button) findViewById(R.id.nex_pager);num = (TextView) findViewById(R.id.num);ListView listView = (ListView) findViewById(R.id.lv);for (int i = 0; i < name.length; i++) {nearlySearchBean = new NearlySearchBean();nearlySearchBean.setName(name[i]);list.add(nearlySearchBean);}prePager.setOnClickListener(this);nexPager.setOnClickListener(this);adapter = new ListViewAdapter();listView.setAdapter(adapter);prePager.setVisibility(View.INVISIBLE);num.setText(index+1+"/"+(int) Math.ceil((double)list.size()/pagerCount));}@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.pre_pager:prePager();break;case R.id.nex_pager:nexPager();break;}}private void nexPager() {index++;System.out.println(index+"nexPager");num.setText(index+1+"/"+(int) Math.ceil((double)list.size()/pagerCount));adapter .notifyDataSetChanged();//隐藏上一个或下一个按钮checkButton();}private void checkButton() {if (index<=0){prePager.setVisibility(View.INVISIBLE);nexPager.setVisibility(View.VISIBLE);}else if (list.size()-index*pagerCount<=pagerCount){    //数据总数减每页数当小于每页可显示的数字时既是最后一页nexPager.setVisibility(View.INVISIBLE);prePager.setVisibility(View.VISIBLE);}}private void prePager() {index--;System.out.println(index+"prePager");adapter.notifyDataSetChanged();num.setText(index+1+"/"+(int) Math.ceil((double)list.size()/pagerCount));//隐藏上一个或下一个按钮checkButton();}class ListViewAdapter extends BaseAdapter{@Overridepublic int getCount() {//数据大于页数*每页个数,显示默认数字,小于时显示剩余的int current = index * pagerCount;return list.size()-current<pagerCount?list.size()-current:pagerCount;}@Overridepublic Object getItem(int i) {return null;}@Overridepublic long getItemId(int i) {return 0;}@Overridepublic View getView(int position, View convertView, ViewGroup viewGroup) {convertView= LayoutInflater.from(getApplicationContext()).inflate(R.layout.pager_item,viewGroup,false);TextView name = (TextView) convertView.findViewById(R.id.name);int pos = position + index * pagerCount;NearlySearchBean nearlySearchBean = list.get(pos);name.setText(nearlySearchBean.getName());return convertView;}}
}

三,item布局和Javabean,Javabean可以根据自己显示的内容增减


public class NearlySearchBean {private String name;private String instance;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getInstance() {return instance;}public void setInstance(String instance) {this.instance = instance;}
}<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:text="肯德基"android:textSize="24sp"android:textColor="@color/colorAccent"android:layout_height="wrap_content" />
</RelativeLayout>

Android开发实现上一页,下一页显示内容相关推荐

  1. php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转

    分页源代码,分页时上一页下一页不显示,但可以跳转 $sql="select * from product where pronum like'%$key%' or pdes like '%$ ...

  2. eayUi panel实现上一页下一页

    function 是为了第一次加载的时候显示页面 butt1和butt2触发上一页下一页,后面绑定参数即可 问题:.panel({href:href})到后台的时候会请求两次,这个问题还没有解决 把 ...

  3. html分页首页上一页下一页,HTML静态分页(形如:首页,上一页,下一页,尾页)...

    在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. fu ...

  4. 用数据库的方式编辑上一页 下一页

    实现文章上一页  下一页的效果  通过调用数据库 using(SqlConnection con=new SqlConnection(@"server=..")) { Guid a ...

  5. php分页上一页下一页判断,一个分页函数:显示“上一页下一页”等

    '************************************************** '函数名:ShowPage '作 用:显示"上一页 下一页"等信息 '参 数 ...

  6. Asp.net(c#)GridView分页时用图片显示上一页,下一页

    Asp.net(c#)GridView分页时用图片显示上一页,下一页 效果展示: 需要的两张图片:    详细代码: Code <%@ Page Language="C#"  ...

  7. php 上一页 下一页代码,php无限上一页,下一页,求完善代码??

    php无限上一页,下一页,求完善代码?? mip版  关注:150  答案:4  悬赏:50 解决时间 2021-01-25 16:24 已解决 2021-01-24 18:25 $pagesize= ...

  8. html内容页上一页下一页,帝国CMS内容页增加内容分页上一页标签功能!

    帝国CMS一直以来升级没有提供内容分页的上一页标签功能,只有一个:内容页下一页[!--next.page--] 标签!所以下面就是要改造一下这个标签,实现内容页上一页的功能! 步骤如下: 打开e/cl ...

  9. 图片切换上一页 下一页

    切换图片 点击上一页切换到上一张,点击一下页切换到下一张 <!DOCTYPE html> <html><head><meta charset="UT ...

最新文章

  1. UIScrollView截长图
  2. python语言创意绘画-齐齐哈尔富裕高校邦数据科学通识课【Python基础语法】答案...
  3. Hibernate【查询、连接池、逆向工程】
  4. 银河麒麟可执行文件双击,闪退问题
  5. Java基础篇:四种代码块详解
  6. 报表打印问题整体解决方案
  7. mongodb查询优化
  8. [DB]MariaDB 与 MySql 数据库
  9. 基于C#和遥感软件二次开发的宜居度综合方法
  10. c语言输出字符串需要取地址吗,char *str;……printf(%p,str);是输出地址吗?还是只与str说占空间大 - C语言论坛 - 编程论坛...
  11. 程序员如何提升自己的能力
  12. MIUI12 Google play无法下载chrome及没有快捷方式的解决方法
  13. Centos6连接网络配置
  14. 有哪些主流智能音箱品牌值得买?小米、华为、苹果、百度
  15. 《股票魔法师》第3-5章读书分享
  16. 基于翻译的模型-TransE,TransH,TransR,TransD
  17. excel服务器项目管理软件,用excel做项目管理系统
  18. python手机自动回复_用python itchat写一个微信机器人自动回复
  19. 【uniapp】页面下拉刷新
  20. GitLab秘钥添加

热门文章

  1. Ruby On Rails 阿里云UBUNTU实例
  2. ui界面设计做什么:ui设计具体是什么
  3. 21和22端口 在java中的使用
  4. iso 国家名称列表
  5. WPS怎么转换成PDF?这样转换准没错
  6. situ课题组工作站神经网络训练速度测评
  7. sshd: no hostkeys available — exiting
  8. 获取客户端真实ip的方法
  9. GuessingGame
  10. 用ios企业证书发布ipa到服务器上扫码下载