- 浏览: 627886 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (164)
- android(基础) (81)
- android(进阶) (2)
- android(底层) (7)
- android(面试) (0)
- android(多媒体) (1)
- android(组件学习) (4)
- android(网络相关) (0)
- android(动画) (1)
- android(数据库) (2)
- android(UI样式) (3)
- android(xml) (0)
- android(调试) (14)
- android(环境搭建) (7)
- android(api) (1)
- C++ (1)
- C (0)
- JavaSE (2)
- Objective-c (1)
- JavaScript (0)
- 设计模式 (0)
- eclipse (3)
- javaee (4)
- 其它 (5)
- linux (18)
- Oracle (1)
- mysql (1)
- 嵌入式linux (1)
- 版本控制工具 (3)
- web前端 (1)
- python (1)
最新评论
-
chungehenyy:
android颜色对应的xml配置值,颜色表 -
u011467537:
...
android中用Spannable在TextView中设置超链接、颜色、字体 -
SurpriseLee:
不能更赞了!
android颜色对应的xml配置值,颜色表 -
u012094586:
这个代码是不是不全呀,能不能提供完整版的给予参考呢?xiexi ...
Android VideoView如何播放RTSP的流 -
luechenying:
顶上天!!!!!!!!!!!!!!!!!!
android颜色对应的xml配置值,颜色表
package hbq.android.myapp.listview; import android.app.ListActivity; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; import android.widget.AbsListView.OnScrollListener; import android.widget.LinearLayout.LayoutParams; public class MainActivity extends ListActivity implements OnScrollListener { private static final String TAG = "MainActivity"; private ListViewAdapter adapter = new ListViewAdapter(); ListView listView; private int lastItem = 0; LinearLayout loadingLayout; /** * 设置布局显示属性 */ private LayoutParams mLayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); /** * 设置布局显示目标最大化属性 */ private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); private ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate(Bundle savedInstanceState)>>>>>>>>>>>>>>>"); // 线性布局 LinearLayout layout = new LinearLayout(this); // 设置布局 水平方向 layout.setOrientation(LinearLayout.HORIZONTAL); // 进度条 progressBar = new ProgressBar(this); // 进度条显示位置 progressBar.setPadding(0, 0, 15, 0); // 把进度条加入到layout中 layout.addView(progressBar, mLayoutParams); // 文本内容 TextView textView = new TextView(this); textView.setText("加载中..."); textView.setGravity(Gravity.CENTER_VERTICAL); // 把文本加入到layout中 layout.addView(textView, FFlayoutParams); // 设置layout的重力方向,即对齐方式是 layout.setGravity(Gravity.CENTER); // 设置ListView的页脚layout loadingLayout = new LinearLayout(this); loadingLayout.addView(layout, mLayoutParams); loadingLayout.setGravity(Gravity.CENTER); // 得到一个ListView用来显示条目 listView = getListView(); // 添加到脚页显示 listView.addFooterView(loadingLayout); // 给ListView添加适配器 setListAdapter(adapter); // 给ListView注册滚动监听 listView.setOnScrollListener(this); } @Override public void onScroll(AbsListView v, int firstVisibleItem, int visibleItemCount, int totalItemCount) { Log.i(TAG, "Scroll>>>first: " + firstVisibleItem + ", visible: " + visibleItemCount + ", total: " + totalItemCount); lastItem = firstVisibleItem + visibleItemCount - 1; Log.i(TAG, "Scroll>>>lastItem:" + lastItem); // 显示50条ListItem,即0-49,因为onScroll是在“滑动”执行过之后才触发,所以用adapter.count<=41作条件 if (adapter.count <= 41) { if (firstVisibleItem + visibleItemCount == totalItemCount) { adapter.count += 10; adapter.notifyDataSetChanged(); listView.setSelection(lastItem); int currentPage = adapter.count / 10; Toast.makeText(getApplicationContext(), "第" + currentPage + "页", Toast.LENGTH_LONG).show(); } } else { listView.removeFooterView(loadingLayout); } } @Override public void onScrollStateChanged(AbsListView v, int state) { if (lastItem == adapter.count && state == OnScrollListener.SCROLL_STATE_IDLE) { Log.i(TAG, "ScrollStateChanged>>>state:" + state + "lastItem:" + lastItem); // 显示50条ListItem,即0-49,因为onScrollStateChanged是在“拖动滑动”执行过之后才触发,所以用adapter.count<=41作条件 if (adapter.count <= 41) { adapter.count += 10; adapter.notifyDataSetChanged(); } } } /** * 要用用于生成显示数据 * */ class ListViewAdapter extends BaseAdapter { int count = 10; public int getCount() { Log.i(TAG, "getCount>>>count:" + count); return count; } public Object getItem(int pos) { Log.i(TAG, "getItem>>>pos:" + pos); return pos; } public long getItemId(int pos) { Log.i(TAG, "getItemId>>>ItemId:" + pos); return pos; } public View getView(int pos, View v, ViewGroup p) { Log.i(TAG, "getView>>>pos:" + pos); TextView view; if (v == null) { view = new TextView(MainActivity.this); } else { view = (TextView) v; } view.setText("ListItem " + pos); view.setTextSize(20f); view.setGravity(Gravity.CENTER); view.setHeight(60); return view; } } }
package hbq.android.myapp.listview; import android.app.ListActivity; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.LinearLayout.LayoutParams; public class ButtonLoadingActivity extends ListActivity { private static final String TAG = "ButtonLoadingActivity"; private ListViewAdapter adapter = new ListViewAdapter(); private ListView listView; /** * 设置布局显示的属性 */ private LayoutParams mLayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); /** * 设置布局显示目标最大化属性 */ private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate(Bundle savedInstanceState)>>>>>>>>>>>>>>>"); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.HORIZONTAL); Button button = new Button(this); button.setText("点击加载下10条..."); button.setGravity(Gravity.CENTER_VERTICAL); layout.addView(button, FFlayoutParams); layout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout(this); loadingLayout.addView(layout, mLayoutParams); loadingLayout.setGravity(Gravity.CENTER); listView = getListView(); listView.addFooterView(loadingLayout); button.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { adapter.count += 10; Log.i(TAG, "setOnClickListener:" + adapter.count); adapter.notifyDataSetChanged(); int currentPage = adapter.count / 10; Toast.makeText(getApplicationContext(), "第" + currentPage + "页", Toast.LENGTH_LONG).show(); } }); setListAdapter(adapter); } class ListViewAdapter extends BaseAdapter { int count = 10; /* starting amount */ public int getCount() { return count; } public Object getItem(int pos) { return pos; } public long getItemId(int pos) { return pos; } public View getView(int pos, View v, ViewGroup p) { Log.i(TAG, "getView>>>pos:" + pos); TextView view; if (v == null) { view = new TextView(ButtonLoadingActivity.this); } else { view = (TextView) v; } view.setText("ListItem " + pos); view.setTextSize(20f); view.setGravity(Gravity.CENTER); view.setHeight(60); return view; } } }
转自:http://yangguangfu.iteye.com/blog/832809
发表评论
-
Fragment 横竖屏切换问题
2013-04-24 14:41 1877在默认情况下当发生横 ... -
Android EditText 增加自定义过滤
2012-02-19 22:20 2435在Android中,可以通过对EditText设置setFil ... -
解决android textview自动换行问题
2012-02-16 11:46 10811今天忽然发现android项目中的文字排版参差不齐的情况非常严 ... -
通过adb命令获取Android手机的IP地址
2011-12-30 19:11 4411要获取Android手机的IP地址,必须先保证你的Androi ... -
Android 图形用户界面 之 绘图(二) Paint类 主要方法介绍
2011-12-30 09:10 1482/** * Paint类介绍 * * Pa ... -
ListView底部分隔线的问题
2011-12-20 14:42 4339在工作中遇到了一个难题,就是一个listView在最下面的一个 ... -
android获取手机上的图片和视频缩略图thumbnails
2011-11-03 22:05 10085转贴自:http://www.android123.com.c ... -
Activity中使用AIDL让Service与Activity通信
2011-10-25 00:06 2812简易计算器,默认执行1+1的计算,点击go按钮执行计算,先看效 ... -
Android图形报表之AchartEngine(附开发包+API文档)
2011-10-22 16:49 11425统计报表: Java4Less (http://java4le ... -
android中用Spannable在TextView中设置超链接、颜色、字体
2011-10-21 23:08 50584昨晚研读 ApiDemo 源码至 com.example.an ... -
android动态设置TextView字体颜色
2011-10-21 11:50 6492最近写程序就遇到了这么个难题,在TextView 上,正常字体 ... -
layer-list和include的使用
2011-10-20 10:14 2424layer-list,include,merge使用,记录一下 ... -
自定义AlertDialog样式,根据屏幕大小来显示
2011-10-19 12:43 4642先介绍一些关于AlertDialog的基本知识: ... -
Android获取屏幕分辨率及DisplayMetrics简介
2011-10-19 08:56 2846Android 可设置为随着窗口大小调整缩放比例,但即便如此, ... -
android资源文件访问android.resource
2011-10-17 09:14 4230android.resource使用转自:http://www ... -
ImageView添加边框
2011-10-16 19:37 2130import android.content.Context; ... -
Android 实现TextView中文字链接的方式
2011-10-16 14:08 2538Android 的实现TextView中文字链接的方式有很多种 ... -
android实现TextView多行文本滚动
2011-10-16 13:38 6459Android中我们为了实现文本的滚动可以在ScrollVie ... -
ListView之setEmptyView的问题
2011-10-15 23:19 4988使用listView或者gridView时,当列表为空时,有时 ... -
去掉TabActivity底部默认白线
2011-10-15 16:38 3318经过一翻百度,google终于实现了TabActivity设置 ...
相关推荐
实现ListView分页通常需要以下步骤: 1. **创建数据源**:首先,你需要一个可分页的数据源。这通常是一个包含分页信息的ObservableCollection,如PagedCollectionView或自己实现的分页数据集。 2. **设置View**:...
在这个"android listview分页查询显示"的Demo中,我们将深入探讨如何实现这个功能,以及如何结合SQLite数据库进行数据管理。 首先,ListView的工作原理是通过Adapter来连接数据源和视图。Adapter负责将数据转化为...
"ListView分页显示 加载更多"的功能是优化用户体验的重要手段,它允许用户在滚动到列表底部时动态加载更多的数据,而不是一次性加载所有内容,从而节省内存资源并提高应用性能。 在实现ListView分页加载更多功能时...
在ListView分页加载中,我们通常会结合PagerAdapter或FragmentPagerAdapter来创建一个滑动页面的效果,这样用户可以逐页浏览内容,而不是一次性看到所有数据。这两种适配器用于在ViewPager中管理页面,与ListView...
"ListView分页显示上一页和下一页"这一主题,就是讨论如何实现ListView在用户滚动到列表底部时自动加载下一页数据,同时提供上一页的切换功能。 一、分页原理 分页的基本思想是将大量数据分为多个小部分(页)来...
一、ListView分页原理 分页的基本思想是将大量数据分成若干个小部分(每部分称为一页),每次只加载一部分数据到ListView中,当用户滚动到底部时,再加载下一页的数据。这样既能保证界面的流畅性,又能有效利用系统...
### WPF ListView分页实现详解 在Windows Presentation Foundation(WPF)中,`ListView`控件是用于展示数据集合的强大工具。当数据集过大时,为了提高应用性能和用户体验,通常会采用分页技术来控制每次加载的数据...
本示例"简单ListView分页Demo"旨在教你如何实现一个具有分页功能的ListView,以展示不同类型的音乐,如流行音乐和古典音乐,并根据类型显示不同数量的条目。我们将探讨以下几个关键知识点: 1. **ListView基础**: ...
本示例“ListView分页加载及图片缓存显示的实现”着重讲解如何优化ListView的性能,提高用户体验,特别是处理大量图片时。以下是对该主题的详细解释: 1. **ListView分页加载**: 分页加载(Pagination)是一种...
本压缩包"安卓listview相关相关-Listview分页加载数据.rar"主要关注的是ListView的分页加载数据这一核心特性。 一、ListView基础 1. ListView的基本结构:ListView由多个View(如TextView、ImageView等)组成的...
本资源"Android高级应用源码-Listview分页加载数据.zip"提供了一种高效处理大量数据的方法——分页加载,这对于优化用户体验和节省系统资源至关重要。下面将详细探讨ListView分页加载的核心原理、实现方法以及其在...
在Android开发中,ListView是广泛...以上就是关于“android listview分页加载的demo【源代码】”的详细知识点介绍,通过学习和实践,开发者可以掌握在Android应用中高效展示大量数据的技巧,提升应用的性能和用户体验。
要实现ListView分页,你需要做以下几步: 1. 数据源管理:创建一个适配器(如ArrayAdapter或BaseAdapter),管理当前显示的数据。当需要加载更多数据时,向适配器添加新数据。 2. 监听滚动事件:通过ListView的...
WPF ListView如何分页困扰了我很久,百度搜索的结果几乎得不到满意的结果,而CSDN论坛上流传的资源包貌似是微软提供的例子,但是略显复杂。经过笔者一晚上的摸索,得到了一种比较简单的解决方案,在此贡献给大家。...
Android ListView分页加载功能 在实际开发中经常用到,是每个开发者必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了测试。 服务端使用MyEclipse,Android端使用Eclipse。
本教程主要围绕"简单的listview分页"展开,旨在帮助初学者理解如何实现ListView的顶部或底部拉动加载更多功能,以及Item之间的分离效果。下面将详细介绍这两个关键知识点。 一、ListView分页 1. 分页原理:分页是...
本示例"HeaderBottomListDemo"专注于实现ListView的分页加载功能,这在处理大数据集时尤为重要,因为它可以提高应用性能并优化用户体验。分页加载允许用户滚动到列表底部时加载更多数据,而不是一次性加载所有内容,...
ListView的数据分页加载功能是提高用户体验和优化应用性能的关键技术。本篇文章将深入探讨如何在Android中实现ListView的分页加载。 首先,理解分页加载的概念至关重要。分页加载是指在用户滚动列表到底部时,应用...
本资源提供了一个自定义ListView结合分页功能的实践案例,包括代码实现和数据库操作,对于学习和理解如何在Android应用中实现高效的数据加载和展示具有很高的参考价值。 首先,我们来了解ListView的基础知识。...