Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载)

Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载),第1张

概述本文实例讲述了Android实现基于滑动的SQLite数据分页加载技术。分享给大家供大家参考,具体如下:

本文实例讲述了AndroID实现基于滑动的sqlite数据分页加载技术。分享给大家供大家参考,具体如下:

main.xml如下:

<menu xmlns:androID="http://schemas.androID.com/apk/res/androID" > <item androID:ID="@+ID/action_settings" androID:orderIncategory="100" androID:showAsAction="never" androID:title="@string/action_settings"/></menu>

MainActivity.java如下:

package com.example.testscrollsqlite;import java.util.ArrayList;import androID.app.Actionbar.LayoutParams;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.Gravity;import androID.vIEw.Menu;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.AbsListVIEw;import androID.Widget.AbsListVIEw.OnScrollListener;import androID.Widget.Adapter;import androID.Widget.BaseAdapter;import androID.Widget.linearLayout;import androID.Widget.ListVIEw;import androID.Widget.TextVIEw;public class MainActivity extends Activity implements OnScrollListener{ private TextVIEw loadInfo; private ListVIEw ListVIEw; private linearLayout loadLayout; private ArrayList<String> items; private DatabaseService service; private int currentPage = 1; //默认在第一页 private static final int linesize = 7; //每次显示数  private int allRecorders = 0; //全部记录数 private int pageSize = 1; //默认共一页 private int lastItem; private aleph0 baseAdapter; @OverrIDe protected voID onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentVIEw(R.layout.activity_main);  ListVIEw = (ListVIEw) findVIEwByID(R.ID.ListvIEw);  //创建一个角标线性布局用来显示"正在加载"  loadLayout = new linearLayout(this);  loadLayout.setGravity(Gravity.CENTER);  //定义一个文本显示“正在加载”  loadInfo = new TextVIEw(this);   loadInfo.setText("正在加载...");  loadInfo.setGravity(Gravity.CENTER);  //增加组件   loadLayout.addVIEw(loadInfo,new LayoutParams(    linearLayout.LayoutParams.MATCH_PARENT,linearLayout.LayoutParams.WRAP_CONTENT));  //增加到ListVIEw底部  ListVIEw.addFooterVIEw(loadLayout);  ListVIEw.setonScrollListener(this);  showAllData(); } /**  * 读取全部数据  */ public voID showAllData(){  service = new DatabaseService(this);  allRecorders = service.getCount();  //计算总页数  pageSize = (allRecorders + linesize -1) / linesize;   System.out.println("allRecorders = " + allRecorders);  System.out.println("pageSize = " + pageSize);  items = service.getAllitems(currentPage,linesize);  for(int i=0; i<items.size(); i++){   System.out.println(items.get(i));  }  baseAdapter = new aleph0();  ListVIEw.setAdapter(baseAdapter); } @OverrIDe public voID onScroll(AbsListVIEw vIEw,int firstVisible,int visibleCount,int totalCount) {  lastItem = firstVisible + visibleCount - 1; //统计是否到最后 } @OverrIDe public voID onScrollStateChanged(AbsListVIEw vIEw,int scorllState) {  System.out.println("进入滚动界面了");  //是否到最底部并且数据没读完  if(lastItem == baseAdapter.getCount()     && currentPage < pageSize //不再滚动    && scorllState == OnScrollListener.SCRolL_STATE_IDLE){   currentPage ++;   //设置显示位置   ListVIEw.setSelection(lastItem);   //增加数据   appendDate();   } } /**  * 增加数据  */ private voID appendDate(){  ArrayList<String> additems = service.getAllitems(currentPage,linesize);  baseAdapter.setCount(baseAdapter.getCount() + additems.size());  //判断,如果到了最末尾则去掉“正在加载”  if(allRecorders == baseAdapter.getCount()){   ListVIEw.removeFooterVIEw(loadLayout);  }  items.addAll(additems);  //通知记录改变  baseAdapter.notifyDataSetChanged(); } class aleph0 extends BaseAdapter {  int count = linesize; /* starting amount */  public int getCount() {   return count;  }   public voID setCount(int count){   this.count = count;  }  public Object getItem(int pos) {   return pos;  }  public long getItemID(int pos) {   return pos;  }  public VIEw getVIEw(int pos,VIEw v,VIEwGroup p) {   TextVIEw vIEw = new TextVIEw(MainActivity.this);   vIEw.setTextSize(60);   if(items != null){    vIEw.setText(items.get(pos));   }else{    vIEw.setText(pos);   }   return vIEw;  } }}

完整实例代码点击此处本站下载。

更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android *** 作SQLite数据库技巧总结》、《Android *** 作json格式数据技巧总结》、《Android数据库 *** 作技巧总结》、《Android编程之activity *** 作技巧总结》、《Android文件 *** 作技巧汇总》、《Android编程开发之SD卡 *** 作方法汇总》、《Android开发入门与进阶教程》、《Android资源 *** 作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家AndroID程序设计有所帮助。

总结

以上是内存溢出为你收集整理的Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载)全部内容,希望文章能够帮你解决Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1141923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存