- 浏览: 246157 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
江恂泽:
楼主 这家伙会把data 拆分开来 转换成day year形 ...
JsonUtil -
mdsp25xhm:
为何没有列表查询功能?
myBatis DAO封装
public class Paging extends Activity implements OnScrollListener
{
private ListView items_list;
/*
* 最后可视索引
*/
private int last_index = 0;
/*
* 一页显示条数
*/
private int items_count = 10;
/*
* 数据总长度
*/
private int data_size = 40;
/*
* ListView 适配器引用对象
*/
private PaginationAdapter paging_adapter;
private View load_more_view;
private Button load_more_item;
private Handler handler = new Handler();
private int DELAY_TIME = 2000;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
load_more_view = getLayoutInflater().inflate(R.layout.loadmore, null);
/*
* dispose Load Items
*/
disposeLoadItems();
items_list = (ListView)findViewById(R.id.lvNews);
items_list.addFooterView(load_more_view);
initializeAdapter();
items_list.setAdapter(paging_adapter);
items_list.setOnScrollListener(this);
}
/**
*
* @param
* @return void
* @throws
* @since TianTian
*/
public void onScrollStateChanged(AbsListView view, int scrollState)
{
int itemsLastIndex = paging_adapter.getCount()-1; //数据集最后一项的索引
int lastIndex = itemsLastIndex + 1;
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE && last_index == lastIndex)
{
// 如果是自动加载,可以在这里放置异步加载数据的代码
Log.v("-----------", "-------------------");
load_more_item = (Button)load_more_view.findViewById(R.id.loadMoreButton);
load_more_item.setText("正在加载中...");
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
loadMoreData();
paging_adapter.notifyDataSetChanged();
load_more_item.setText("查看更多..."); //恢复按钮文字
}
},DELAY_TIME);
paging_adapter.notifyDataSetChanged();
}
}
/**
*
* @param
* @return void
* @throws
* @since TianTian
*/
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount)
{
this.items_count = visibleItemCount;
last_index = firstVisibleItem + visibleItemCount - 1;
Log.e("========================= ","========================");
Log.e("items_count = ",items_count+"");
Log.e("firstVisibleItem = ",firstVisibleItem+"");
Log.e("visibleItemCount = ",visibleItemCount+"");
Log.e("totalItemCount = ",totalItemCount+"");
Log.e("========================= ","========================");
//如果所有的记录选项等于数据集的条数,则移除列表底部视图
if(totalItemCount == data_size + 1)
{
items_list.removeFooterView(load_more_view);
Toast.makeText(this, "数据全部加载完!", Toast.LENGTH_LONG).show();
}
}
{
private ListView items_list;
/*
* 最后可视索引
*/
private int last_index = 0;
/*
* 一页显示条数
*/
private int items_count = 10;
/*
* 数据总长度
*/
private int data_size = 40;
/*
* ListView 适配器引用对象
*/
private PaginationAdapter paging_adapter;
private View load_more_view;
private Button load_more_item;
private Handler handler = new Handler();
private int DELAY_TIME = 2000;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
load_more_view = getLayoutInflater().inflate(R.layout.loadmore, null);
/*
* dispose Load Items
*/
disposeLoadItems();
items_list = (ListView)findViewById(R.id.lvNews);
items_list.addFooterView(load_more_view);
initializeAdapter();
items_list.setAdapter(paging_adapter);
items_list.setOnScrollListener(this);
}
/**
*
* @param
* @return void
* @throws
* @since TianTian
*/
public void onScrollStateChanged(AbsListView view, int scrollState)
{
int itemsLastIndex = paging_adapter.getCount()-1; //数据集最后一项的索引
int lastIndex = itemsLastIndex + 1;
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE && last_index == lastIndex)
{
// 如果是自动加载,可以在这里放置异步加载数据的代码
Log.v("-----------", "-------------------");
load_more_item = (Button)load_more_view.findViewById(R.id.loadMoreButton);
load_more_item.setText("正在加载中...");
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
loadMoreData();
paging_adapter.notifyDataSetChanged();
load_more_item.setText("查看更多..."); //恢复按钮文字
}
},DELAY_TIME);
paging_adapter.notifyDataSetChanged();
}
}
/**
*
* @param
* @return void
* @throws
* @since TianTian
*/
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount)
{
this.items_count = visibleItemCount;
last_index = firstVisibleItem + visibleItemCount - 1;
Log.e("========================= ","========================");
Log.e("items_count = ",items_count+"");
Log.e("firstVisibleItem = ",firstVisibleItem+"");
Log.e("visibleItemCount = ",visibleItemCount+"");
Log.e("totalItemCount = ",totalItemCount+"");
Log.e("========================= ","========================");
//如果所有的记录选项等于数据集的条数,则移除列表底部视图
if(totalItemCount == data_size + 1)
{
items_list.removeFooterView(load_more_view);
Toast.makeText(this, "数据全部加载完!", Toast.LENGTH_LONG).show();
}
}
发表评论
-
IMF简介-2
2013-07-09 17:56 895InputManager 由UI控件(View,TextVie ... -
IMF简介-1
2013-07-09 17:51 816Input Method Framework 目录 ... -
输入法 总结-3
2013-07-08 15:02 852public class MainActivity exten ... -
输入法 总结-4
2013-07-04 17:29 937public class InputActivity exte ... -
输入法 总结-3
2013-07-04 17:28 861public class InputApplication e ... -
输入法 总结-2
2013-07-04 17:23 776openwnn_pref_ja.xml <?xml v ... -
输入法 总结-2
2013-07-04 17:21 13openwnn_pref_ja.xml <?xml v ... -
输入法 总结-1
2013-07-04 17:19 796<application android ... -
Android快捷键
2013-03-15 14:39 827Home键(小房子键) 在 ... -
如何通过wifi调试android程序
2013-02-27 15:48 768android手机居然可以通过wifi进行程序的调试,太好了, ... -
Please ensure that adb is correctly located at 'D:\android-sdk-windows\platform-
2013-02-27 14:27 1656adt 出现ADB server didn't ACK, fa ... -
Android AsyncTask
2013-02-19 09:35 1121AsyncTask是抽象类,子类 ... -
Android ViewPager 左右滑动2-1
2013-01-29 10:12 1492public class PagerActivity exte ... -
Android ViewPager 左右滑动-3
2013-01-29 10:10 1101<?xml version="1.0" ... -
Android ViewPager 左右滑动-2
2013-01-29 10:10 1466/*** * 选中效果 */ pu ... -
Android ViewPager 左右滑动-1
2013-01-29 10:09 1382Store extends ActivityGroup imp ... -
Android 下载
2013-01-27 00:59 909下载apk程序代码 protected File downLo ... -
Android SDCard操作-3
2013-01-26 18:31 883public static Intent getVid ... -
Android SDCard操作-2
2013-01-26 18:30 1110/** * 判断该应用在手机中的安装情况 ... -
Android SDCard操作-1
2013-01-26 18:27 1048private static int INSTALLED = ...
相关推荐
本知识点主要聚焦于Android分页库的使用和实现,尤其是通过开源库来简化这一过程。 Android分页库通常提供以下功能: 1. **动态加载**:当用户滚动到页面底部时,自动请求下一页数据。 2. **预加载**:在用户到达...
总之,Android分页加载数据是一个涉及到多个层面的技术问题,包括UI交互、网络请求、数据处理、缓存策略等。合理运用各种技术和工具,能帮助我们构建出高效、流畅的分页加载功能。在实际开发中,需要根据项目需求和...
除了基础概念,项目还包括了一些高级主题,如Coroutine(协程)用于异步编程,以及Jetpack库的其他组件,如Navigation(导航)、Paging(分页)等。这些工具和库的使用,使得应用程序的开发更加高效和易于维护。 ...
在Android开发中,分页控件是不可或缺的一部分,它能够帮助用户更有效地浏览大量数据,同时减轻服务器压力。本教程将深入探讨如何在Android中创建一个自定义分页控件,以便实现高效、用户友好的界面。 首先,我们...
1. **RecyclerView基本概念** RecyclerView是一个可滚动的视图,用于显示大量数据集。它取代了ListView,提供了更强大的功能和更高的性能。与ListView相比,RecyclerView允许更灵活的布局管理,并且通过ViewHolder...
在这个“Android gridview分页效果”的项目中,我们将会探讨如何在Android应用程序中实现GridView的分页功能,这对于处理大量数据时提升用户体验至关重要。 首先,GridView的基本用法是通过在XML布局文件中定义一个...
1. **Activity与Intent**:Activity是Android应用的基本构建块,它代表了用户界面的一个屏幕。Intent用于在不同的组件之间进行通信,如启动Activity或Service。 2. **布局设计**:项目可能包含多种XML布局文件,...
1. **RecyclerView简介** RecyclerView是一个用于显示列表数据的视图容器,由Google在Android Support Library v7包中提供。它引入了ItemDecoration和ItemAnimator,使得列表的动画效果和布局管理更加灵活,提升了...
当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用GridView实现分页加载功能。 首先,理解GridView的基本概念。GridView是ListView的...
Java语言是Android开发的主要编程语言,因此理解如何使用Java实现Android分页至关重要。本节将深入探讨Android分页模板的实现,以及如何结合Ajax技术提高应用性能。 一、分页基础 分页的基本思想是将大量数据分...
1. **ListView**:ListView是Android早期用于显示大量数据的组件,它允许滚动和复用视图,以优化内存使用。不过,由于其存在性能和复用问题,现在已经逐渐被RecyclerView替代。 2. **RecyclerView**:RecyclerView...
在Android应用开发中,分页加载数据是一种常见的优化策略,特别是在显示大量数据的列表或网格视图中,如ListView、RecyclerView等。这个实例主要讲解如何实现在用户滚动到列表底部时,动态地从服务器获取更多数据并...
在Android开发中,当应用程序需要显示大量的数据时,通常会采用分页加载的方式来优化用户体验,避免一次性加载所有数据导致的性能问题和用户界面卡顿。本篇将详细讲解如何实现Android表单的分页效果,以`Listview`为...
综上所述,实现Android中的小说分页功能涉及多个层面,包括自定义Adapter的设计、文本处理、UI布局、性能优化以及事件处理。通过这样的实践,我们可以创建一个用户友好的阅读体验,同时也可以锻炼对Android SDK和...
例如,`Paging库`是Google官方提供的用于Android的分页库,它可以与Room数据库和网络API无缝集成,实现高效、自动化的分页加载。 四、使用轻量级库的步骤 1. 添加依赖:首先,需要在项目的build.gradle文件中添加...
在处理大量数据时,相比ListView,RecyclerView能更有效地管理视图,只加载屏幕可见的视图项,从而节省内存并提高性能。这得益于其ViewHolder模式,该模式将视图状态保存在一个对象中,减少了findViewById()的调用...
5. **权限处理**:自动处理Android的存储权限请求,确保在需要时向用户请求访问文件系统的权限。 6. **易于集成**:简单的API接口,使得开发者能够快速将文件选择功能集成到自己的项目中。 **使用步骤:** 1. **...
本篇文章将详细探讨Android分页加载的原理、实现方式以及最佳实践。 一、分页加载的原理 分页加载的基本思想是将大量数据分为若干小部分(即页),每次只加载用户当前看到的那一部分。当用户滚动到页面底部时,...
1. 分页原理: 分页加载的基本思想是将数据集分成若干个部分,每次只加载一部分(一页)数据,当用户滚动到页面底部时,再动态加载下一页。对于图片加载,这意味着我们首先加载屏幕可见的图片,随着用户滚动,后台会...
在Android应用开发中,数据库是数据存储的重要方式,特别是在处理大量数据时,为了提高用户体验,分页查询就显得尤为重要。本篇文章将详细讲解如何在Android中实现数据库的分页查询功能,以高效、流畅地加载和展示...