我启动我的ListView,启动一个线程并加载数据......然后ListView没有得到更新!有几个人告诉我应该用notifyDataSetChanged().但是我不能把这个命令放在我的线程中(只是未知).
有任何想法吗?
小智 19
我有同样的问题......当我遇到这个问题时,我很兴奋.但没有答案?:-(
长话短说:
从上面链接引用:
我们必须使用Handler对象,因为在单独的线程中我们无法更新大多数UI对象.当我们向Handler发送消息时,它将被保存到队列中并尽快由UI线程执行.
查看代码后,您会看到作者所说的内容.
注意:即使使用处理程序,Android也可能不允许您从线程的run()方法更新视图对象.我收到了这个错误:
05-31 02:12:17.064: ERROR/AndroidRuntime(881):
android.view.ViewRoot$CalledFromWrongThreadException:
Only the original thread that created a view hierarchy can touch its views.
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我在run()方法中更新了一个数据数组,并使用该数组更新了处理程序的handleMessage()方法中的视图.
我希望这有助于其他人.
| 归档时间: |
|
| 查看次数: |
27218 次 |
| 最近记录: |