注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

早衰男的巢

大音希声 道隐无名

 
 
 

日志

 
 

Android笔记79: 适配器的notifyDataSetChanged()失效之谜.  

2015-03-09 12:52:53|  分类: android笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
需要对spinner(listview同理)重新加载内容。
一般处理流程都是定义好 如下对象

private Spinner mSpinner; //spinner对象
private ArrayList<String> mList; //加载的内容list
private ArrayAdapter<String> mAdapter;// 装载list到spinner的适配器
// 初始化、定义、 set什么的过程略...


private void updateSpinner(){
mList =  new ArrayList<String>();
//赋值过程略..
mAdapter.notifyDataSetChanged(); 
}

运行发现 updateSpinner() 无效果..汗颜,怎么查,传参什么都没错...可以 mSpinner就是不更新..
最后才意识到..额... mList被我重新new了??所以适配器里的mList已经不能捕获到数据的变化了???!做了如下的修改

private void updateSpinner(){
//mList =  new ArrayList<String>();
mList.clear(); //用清理代替 re new.
//赋值过程略..
mAdapter.notifyDataSetChanged(); 
}

然后就可以了!!! ft. 低级错误

这么多年了,OOP基础意识淡薄啊..渣渣哭成狗。
  评论这张
 
阅读(337)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018