最近在学习Android的listView控件时遇到了一个问题,如何添加一个Item到ListView中并及时的刷新出来。在网上查了很多帖子,很多人在问,也很多人在解答,但是总的来说都没找到详细的解决方案。对于ListView与数据库的同步,高手们建议使用ContentProvider对象。但是如果我不使用数据库呢?也有人回答用notifyDataSetChanged()方法。这倒是一个正确的解决方案,但是对于新手来说,还是比较困惑怎么去用,这里我贴一下我的用法:
view plaincopy to clipboardprint?
01.OnClickListener listener2 = new OnClickListener() {
02. @Override
03. public void onClick(View v) {
04. // TODO Auto-generated method stub
05. Map<String, Object> m = new HashMap<String, Object>();
06. String tiString = tv.getText().toString(); // 注意这里我为什么要取出这个EditText的内容
07. m.put("prod_na", tiString); // 而不这样写 m.put("prod_na", tv.getText());
08. m.put("prod_type", tiString); // 因为tv.getText()返回的是Editable对象,真正的数据是被缓存的,
09. // 也就是说你后续的EditText改动都会影响之前添加的Item
10. coll.add(m);
11.
12. // 取回Adapter对象,用于调用notifyDataSetChanged方法。
13. SimpleAdapter sAdapter = (SimpleAdapter)lv.getAdapter();
14. sAdapter.notifyDataSetChanged();
15. }
16. };
这里涉及到了Android中的MVC模式概念,如何存储数据,控制和显示。
你可以认为ListView是一个View,那么mode是什么呢?显然是SimpleAdapter对象,而Control又是什么呢?那只能是notifyDataSetChanged()了。当数据变化时,也就是SimpleAdapter所处理的数据变化了,那么我们就需要调用 notifyDataSetChanged 去通知View作出改变。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pilou5400/archive/2010/12/08/6062581.aspx
分享到:
相关推荐
ListView下拉刷新 ListView下拉刷新ListView下拉刷新ListView下拉刷新
为了解决listview局部刷新调用getView多次
android 实现listview动态下拉刷新,动态加载数据 可以避免一次数据加载过多
Android_ListView动态刷新
androidListView下拉刷新Demo 详情参考:http://blog.csdn.net/wild46cat/article/details/52636683
Android ListView下拉刷新 Demo.rar
仿照手机微博刷新列表,下拉listview松手后刷新数据
解决Scrollview嵌套listview下拉刷新的一些问题
三种ListView下拉刷新的样式 刷新进度条跟随下拉距离转动 最通用的比较原 始的 自己定义进度条
ListView水滴效果的下拉刷新。具有新的动态感。
解决了listview刷新后重绘的闪烁,用此方法后,不再闪烁。
Android listview 下拉 刷新
ListView动态加载刷新
整理了下以前写的小项目,ListView的下拉刷新,虽然小但还是想纪念下。。适合新手看,大神略过。。。
unity小巧插件,功能单一,用来listview的下拉刷新,操作简单
自定义listview下拉刷新上拉加载更多以及与google官方的下拉刷新结合使用
NULL 博文链接:https://geningaixin.iteye.com/blog/2034379
完美的ListView下拉刷新上拉加载实例Demo,已经测试完美运行
android Listview下拉刷新 上拉(滑动分页)加载更多 高仿新浪微博下拉刷新,同时实现了滑动加载下一页
ListView下拉刷新上拉自动加载demo.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。