Android分页中显示出下面翻页的导航栏的布局实例代码

当页面条目过多的时候需要分页,要在布局中显示出分页的相关布局,使用android:layout_weight="11"

activity_call_safe.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView style="@style/TitleStyle" android:text="黑名单管理" /> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="11" > <LinearLayout android:id="@+id/ll_pb" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:visibility="invisible" android:orientation="vertical" > <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="玩命加载中..." /> </LinearLayout> <include android:id="@+id/list_view_callsafe" layout="@layout/list_view_callsafe"/> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:onClick="prePage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上一页" android:layout_weight="1" /> <Button android:onClick="nextPage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一页" android:layout_weight="1" /> <Button android:onClick="jump" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳转" android:layout_weight="1" /> <EditText android:id="@+id/et_page_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/tv_page_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0/12" android:textSize="20sp" android:layout_weight="1" /> </LinearLayout> </LinearLayout>

逻辑文件,实现分页显示,页面的跳转,页数的显示,数据的删除同时更新ListView

package com.ldw.safe.Activity; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Adapter; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.ldw.safe.R; import com.ldw.safe.adapter.MyBaseAdapter; import com.ldw.safe.bean.BlackNumberInfo; import com.ldw.safe.db.dao.BlackNumberDao; public class CallSafeActivity extends Activity { private ListView list_view_callsafe; private List<BlackNumberInfo> blackNumberInfos; private LinearLayout ll_pb; private BlackNumberDao dao; private TextView tv_page_number; private int pageNumber; private int mPageSize = 20;//每一页显示多少数据 private int mCurrentPageNumber = 0;//当前页面 private int totalPage; private CallSafeAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_call_safe); initUi(); initData(); } //初始化数据 private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { //通过总数,和每页显示多少条显示有多少条数据 tv_page_number.setText(mCurrentPageNumber + "/" + totalPage); //数据初始化结束,关闭家在全的展示 ll_pb.setVisibility(View.INVISIBLE); adapter = new CallSafeAdapter(blackNumberInfos, CallSafeActivity.this); //配置适配器 list_view_callsafe.setAdapter(adapter); } }; private EditText et_page_number; //初始化数据 private void initData() { //防止阻塞主线程,在子线程中初始化数据(后期数据会很多) new Thread(){ @Override public void run(){ dao = new BlackNumberDao(CallSafeActivity.this); //获取到总条数和页数 totalPage = dao.getTotalNumber() / mPageSize; //获取到表的所有数据 //blackNumberInfos = dao.findAll(); //分页显示数据 blackNumberInfos = dao.findPar(mCurrentPageNumber, mPageSize); handler.sendEmptyMessage(0); } }.start(); } //初始化UI private void initUi() { ll_pb = (LinearLayout) findViewById(R.id.ll_pb); //初始化的时候展示加载的圆圈 ll_pb.setVisibility(View.VISIBLE); list_view_callsafe = (ListView) findViewById(R.id.list_view_callsafe); tv_page_number = (TextView) findViewById(R.id.tv_page_number); et_page_number = (EditText) findViewById(R.id.et_page_number); } //对代码进行优化,继承自定义MyBaseAdapter,MyBaseAdapter继承自BaseAdapter封装一些常用的方法 private class CallSafeAdapter extends MyBaseAdapter<BlackNumberInfo>{ private CallSafeAdapter(List lists, Context mContext){ super(lists, mContext); } @Override public View getView(int position, View convertView, ViewGroup parent) { //谷歌推出的优化方案 ViewHolder holder; if(convertView == null){ convertView = View.inflate(CallSafeActivity.this, R.layout.item_call_safe, null); holder = new ViewHolder(); holder.tv_number = (TextView) convertView.findViewById(R.id.tv_number); holder.tv_mode = (TextView) convertView.findViewById(R.id.tv_mode); holder.iv_delete = (ImageView) convertView.findViewById(R.id.iv_delete); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.tv_number.setText(lists.get(position).getNumber()); String mode = lists.get(position).getMode(); if(mode.equals("1")){ holder.tv_mode.setText("电话和短信拦截"); }else if(mode.equals("2")){ holder.tv_mode.setText("电话拦截"); }else if(mode.equals("3")){ holder.tv_mode.setText("短信拦截"); } final BlackNumberInfo info = lists.get(position); //监听删除数据按钮,删除数据 holder.iv_delete.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { String number = info.getNumber(); boolean result = dao.delete(number); if(result){ Toast.makeText(CallSafeActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); lists.remove(info); //更新ListView adapter.notifyDataSetChanged(); }else{ Toast.makeText(CallSafeActivity.this, "删除失败", Toast.LENGTH_SHORT).show(); } } }); return convertView; /* //谷歌推出的优化方案 ViewHolder holder; if(convertView == null){ convertView = View.inflate(CallSafeActivity.this, R.layout.item_call_safe, null); holder = new ViewHolder(); holder.tv_number = (TextView) convertView.findViewById(R.id.tv_number); holder.tv_mode = (TextView) convertView.findViewById(R.id.tv_mode); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.tv_number.setText(blackNumberInfos.get(position).getNumber()); String mode = blackNumberInfos.get(position).getMode(); if(mode.equals("1")){ holder.tv_mode.setText("电话和短信拦截"); }else if(mode.equals("2")){ holder.tv_mode.setText("电话拦截"); }else if(mode.equals("3")){ holder.tv_mode.setText("短信拦截"); } return convertView; */ /*初步的优化 convertView = View.inflate(CallSafeActivity.this, R.layout.item_call_safe, null); TextView tv_number = (TextView) convertView.findViewById(R.id.tv_number); TextView tv_mode = (TextView) convertView.findViewById(R.id.tv_mode); tv_number.setText(blackNumberInfos.get(position).getNumber()); String mode = blackNumberInfos.get(position).getMode(); if(mode.equals("1")){ tv_mode.setText("电话和短信拦截"); }else if(mode.equals("2")){ tv_mode.setText("电话拦截"); }else if(mode.equals("3")){ tv_mode.setText("短信拦截"); } return convertView; */ /*传统的方式 View view = View.inflate(CallSafeActivity.this, R.layout.item_call_safe, null); TextView tv_number = (TextView) view.findViewById(R.id.tv_number); TextView tv_mode = (TextView) view.findViewById(R.id.tv_mode); tv_number.setText(blackNumberInfos.get(position).getNumber()); String mode = blackNumberInfos.get(position).getMode(); if(mode.equals("1")){ tv_mode.setText("电话和短信拦截"); }else if(mode.equals("2")){ tv_mode.setText("电话拦截"); }else if(mode.equals("3")){ tv_mode.setText("短信拦截"); } return view; */ } } static class ViewHolder{ TextView tv_number; TextView tv_mode; ImageView iv_delete; } /* * 上一页 */ public void prePage(View v){ //页码不能超过范围 if(mCurrentPageNumber <= 0){ Toast.makeText(this, "这已经是第一页", Toast.LENGTH_SHORT).show(); return; } mCurrentPageNumber --; initData(); } /* * 下一页 */ public void nextPage(View v){ //页码不能超过范围 if(mCurrentPageNumber >= totalPage - 1){ Toast.makeText(this, "这已经是最后一页", Toast.LENGTH_SHORT).show(); return; } mCurrentPageNumber ++; initData(); } /* * 跳转页面 */ public void jump(View v){ String jump_page = et_page_number.getText().toString(); if(TextUtils.isEmpty(jump_page)){ Toast.makeText(this, "请输入正确的页码", Toast.LENGTH_SHORT).show(); }else{ //读取的字符串转换成int int pageNumber = Integer.parseInt(jump_page); if(pageNumber >=0 && pageNumber<= totalPage - 1){ mCurrentPageNumber = pageNumber; initData(); }else{ Toast.makeText(this, "请输入正确的页码", Toast.LENGTH_SHORT).show(); } } } }

以上所述是小编给大家介绍的Android分页中显示出下面翻页的导航栏的布局实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

时间: 2024-09-30 20:16:39

Android分页中显示出下面翻页的导航栏的布局实例代码的相关文章

用visual stutio 进行蓝牙开发时,怎么样在一个列表中显示出多个蓝牙设备的·名称?

问题描述 用visual stutio 进行蓝牙开发时,怎么样在一个列表中显示出多个蓝牙设备的·名称? button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //获取本机的蓝牙设备,如果不存在蓝牙设在则返回空 BluetoothAdapter adapter = BluetoothAdapter

[Android]任务列表中显示&quot;小程序&quot;的原理分析

今天被小程序刷屏了^^ 我也来凑凑热闹.谈谈微信是怎么实现在任务列表中显示"小程序"的. 效果 微信中打开了"滴滴(小程序)"后,可以看到,任务列表不仅显示了"微信", 还显示了"滴滴(小程序)"的人口.通过这个入口,就可以很方面的切换小程序了, 体验和原生程序也一样一样的. 分析 下面简单分析一下他的实现. 1.Android系统中,显示最近程序列表的View是 RecentsPanelView. 他通过refreshRec

listcontrol-求教:C++中怎么在一个对话框中输入数据后在另一个对话框中的表格中显示出相应的数据?

问题描述 求教:C++中怎么在一个对话框中输入数据后在另一个对话框中的表格中显示出相应的数据? 先设定主框为有表格的对话框,在这个对话框点添加按钮后弹出了子对话框(用于输入数据),可是怎么把输入的数据在表格中显示出来呢? 解决方案 可以在创建输入数据的对话框的时候就把ListView的指针发送给它,然后m_List.InsertColumn() 解决方案二: 在一个对话框中输入数据后,要看你是如何保存的? 如果是保存成全局的变量,另一个对话框就可以直接访问(同一应用中两个不同的对话框): 如果是

asp.net中gridview在360浏览器的网页中显示出空白的边框

问题描述 asp.net中gridview在360浏览器的网页中显示出空白的边框 利用VS中的asp.net编写网页时,用Gridview来绑定数据,在本地运行正常,用IIS发布后,不显示数据时(不查询,只有表头ID)在IE浏览器中也是正常的:但是在360浏览器中就显示出问题了:表头(第一行)后面接着显示出空白的边框(第二行).我怀疑是浏览器兼容性的问题,请问这个怎么修改???

mfc windows编程-怎么才可以让mfc框架中显示出图片

问题描述 怎么才可以让mfc框架中显示出图片 如图所示,我看视频学的,写的也和视频中一样,可为什么图片总是显示不出来,是因为m_img没有赋值成功么,希望大神们指导,最好能写下源码.对了,我建立mfc.exe时,里面的什么头文件啊什么的,就加了一个Gdiplus.h,其他的什么定义也没动,只是加了一些东西,求教多谢各位大神 解决方案 http://blog.csdn.net/friendan/article/details/38358507http://blog.csdn.net/liu_che

Android中使用七牛云存储进行图片上传下载的实例代码

Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了. 可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端

Android 中按home键和跳转到主界面的实例代码

//home Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //如果是服务里调用,必须加入new task标识 intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent); //主界面 Intent intent = new Intent(Intent.ACTION_MAIN,null)

Android ActionBar完全解析使用官方推荐的最佳导航栏(下)

本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/actionbar.html 限于篇幅的原因,在上篇文章中我们只学习了ActionBar基础部分的知识,那么本篇文章我们将接着上一章的内容继续学习,探究一下ActionBar更加高级的知识.如果你还没有看过前面一篇文章的话,建议先去阅读Android ActionBar完全解析,使用官方推荐的最佳导航栏(

显示的数字 能指定到 导航栏的摸个图标上吗

问题描述 显示的数字 能指定到 导航栏的摸个图标上吗 用TobHost 制作 导航栏 单选按钮样式 如果显示 未读信息的数目(数字)怎么能指定到摸个导航图标上 解决方案 什么语言环境都没人,这没法回答呀