当页面条目过多的时候需要分页,要在布局中显示出分页的相关布局,使用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 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,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,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,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分页中显示出下面翻页的导航栏的布局实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
总结以上是内存溢出为你收集整理的Android分页中显示出下面翻页的导航栏的布局实例代码全部内容,希望文章能够帮你解决Android分页中显示出下面翻页的导航栏的布局实例代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)