标签:
一 .ListView 不执行getView()方法
setAdapter 时,首先会执行getCount(),当getCount() 返回的是0时,就不会去执行getView()方法, 如果 开启线程去下载数据,然后在getCount()中返回其size, 开始的时候因为还没有下载数据,返回的size可能是0,所以不会去调用getView()方法,界面就不会被填充。 下载完成后 通过notifyDataSetChanged()方法 重新加载适配器,就会调用getView()方法了.
二. 重点参考 stackoverflow中的
http://stackoverflow.com/questions/7391797/listview-not-getting-populated-getview-isnt-getting-called
http://stackoverflow.com/questions/10165263/listview-is-not-populating-yet-getview-is-called?rq=1
Sometimes it seems notifyDataSetChanged() won’t work for you. Reasons why,
Your adapter loses reference to your list. When you first initialize the Adapter it takes a reference of your arrayList and pass to its superclass. But if you reinitialize your existing arrayList it losts the reference hence the communication channel with Adapter :(.
Always creating and adding a new list to the Adapter. Do like this:
三. notidydatasetchanged
http://stackoverflow.com/questions/3669325/notifydatasetchanged-example
标签:
原文地址:http://www.cnblogs.com/chuiyuan/p/4205670.html