【发布时间】:2011-01-02 18:19:02
【问题描述】:
在Zwitscher 我有一个ListView,它显示了许多推文。然后用户可以重新加载时间线,如果有新推文,新列表将加载到列表适配器(加上一些旧的),我通过滚动到列表末尾
listView.setSelection(x);
其中x 是新加载推文中最旧推文的数量。这很好用。
但不幸的是,这会“禁用”视图上的 onItemClick() 和 onItemLongClick() 处理程序。如果我然后(例如从按钮)调用
listView.setSelection(0);
onItemClick() 和 onItemLongClick() 的处理程序再次“启用”。
我已验证在调用setSelection(x) 后,处理程序仍设置在listView 上。并且禁用对setSelection(x) 的调用也不会“禁用”处理程序。
知道我做错了什么吗?
完整的来源在这里:https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java,有问题的行在第 417 行的onPostExecute()
【问题讨论】:
-
如何更新我希望它的通知数据集已更改的列表?就像 hack 一样,如果你将 sset selection 设置为 x 然后设置为 0 然后返回 x ,它会起作用吗?
标签: android listview android-listview