我有一个像gmail应用程序一样的实现,但有 在某些情况下遇到了一些问题。我在真实的设备上测试了它 gmail应用程序。似乎它们是由同样的原因造成的。 的ListView。
只需转到gmail应用程序,向下滚动到最后一个可见的 邮件,并在这个时候,确保在“加载对话” 底部还在。然后长按最后一个邮件和上下文 菜单出现。然后等待后台电子邮件加载完成(你 可以看到滚动条向上移动)。然后你做了一些动作 上下文菜单,说“阅读邮件”。但是,显示邮件不是 我长期以来压过的那个。
经过一些调试,我发现这应该与ListView和 它的适配器的getView方法,“转换视图”在重用时被重用 显示上下文菜单,在这种情况下listItemview有一些 字段记录邮件的索引,而getView方法是 调用后,该字段已被更改。
任何人都可以提供更好的方法来解决这个问题吗?
感谢。
答案 0 :(得分:0)
如果内容菜单处理程序依赖于position
而不是_ID
,我可以看到遇到此问题。特别是如果您使用CursorAdapter
,请使用_ID
值,因为(希望)是不可变的。