- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ListView的动态加载数据
ListView动态加载数据
为了提高ListView的效率和应用程序的性能,在Android应用程序中不应该一次性加载ListView所要显示的全部信息,而是采取分批加载策略,随着用户的滑动,动态的从后台加载所需的数据,并渲染到ListView组件中,这样可以极大的改善应用程序的性能和用户体验。
效果:进入ListView组件,首先预加载N条记录,当用户滑动到最后一条记录显示加载提示信息,并从后台加载N条数据,接着重新更新界面。
public class MainActivity extends Activity {
private ListView myQQ;//定义下拉列表
private int[] images = new int[] { R.drawable.a1, R.drawable.a2,
R.drawable.a3, R.drawable.a4, R.drawable.a5, R.drawable.a6,
R.drawable.a7, R.drawable.a8, R.drawable.a9, R.drawable.a10 };//定义图片资源
private String[] names = new String[] { name000, name001, name002,
name003, name004, name005, name006, name007, name008,
name009, name010, name011, name012, name013, name014,
name015, name016, name017, name018, name019, name020,
name021, name022, name023, name024, name025, name026,
name027, name028, name029, name030, name031, name032,
name033, name034, name035, name036, name037, name038,
name039 };//定义字符串资源
private View footView;//定义下拉列表底部的View
private int total = names.length;// 列表所包含的所有项,包括显示的和未显示的
private int lastItem;// 已显示的最后一项
private int itemCount;// Adapter中已有的项
private int newItems=10;//每次新加载的项数
private SimpleAdapter adapter;//设置资源和显示样式的Adapter
private Handler myHandler=new Handler();//创建Handler对象
ArrayListMapString, Object items ;//列表项的集合
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//设置界面的布局,仅有一个下拉列表
myQQ = (ListView) findViewById(R.id.myQQ);//获取到下拉列表
footView = getLayoutInflater().inflate(R.layout.load, null);
//用布局文件填充View,注意该布局文件中的控件无法根据findViewById方法获取
myQQ.addFooterView(footView);//将底部View添加到下拉列表中
items = new ArrayListMapString, Object();//创建下拉列表项的集合
for (int i = 0; i 10; i++) {
MapString, Object item = new HashMapString, Object();
item.put(icon, images[i % images.length]);
item.put(name, names[i]);
items.add(item);
}//循环为集合中的每一项各部分进行赋值
adapter = new SimpleAdapter(this, items, R.layout.item, new String[] {
icon, nam
文档评论(0)