在Zwitscher我有一个显示大量推文的 ListView
。然后用户可以重新加载时间线,如果有新的推文,新列表将加载到列表适配器(加上一些旧的),然后我通过
listView.setSelection(x);
其中 x
是新加载的推文中最旧的推文数量。这很好用。
但不幸的是,这会“禁用” View 上的 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()
中
最佳答案
我无法重现。 onItemClick()
在任何 setSelection
之后调用。尝试通过创建可重现的测试用例来隔离问题。如果你成功了,我认为你应该向 android 提交一个错误。
关于android - 调用 setSelection() 后,ListView 不再对 onclick 使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579754/