【问题标题】:How to scroll to the new added item in a ListView如何滚动到 ListView 中新添加的项目
【发布时间】:2010-05-07 15:19:35
【问题描述】:

我的应用程序显示一个带有按钮的 ListView,允许用户添加元素。当用户单击此按钮时,将启动另一个 Activity 以允许用户填充新元素。添加完成后,我们返回上一个带有 ListView 的 Activity,我想滚动到新元素。 请注意,此元素不一定位于 ListView 的末尾,因为当我从数据库中检索数据时,存在“排序依据”。

我知道我需要新元素的光标位置来使 ListView 滚动到它,但我对这个元素的唯一信息是它的 id,那么如何将此 id 转换为光标位置?我是否必须在光标上循环才能找到位置?

提前致谢

【问题讨论】:

  • 你有你的项目或有新项目的视图吗?
  • 不确定是否理解您的问题,添加新项目的活动返回项目数据库 id(id 列),然后当我回到 listView 时,我用来自的查询重新填充列表数据库,但我不知道如何滚动到只有其数据库 ID 的新项目。

标签: android listview cursor cursor-position


【解决方案1】:

如果我有这个权利,您的活动将返回新元素,然后您再次从数据库中获取所有条目,并且您拥有的唯一信息是元素的 id。如果这是这种情况,我认为唯一的选择是迭代适配器中的所有元素并找到正确的元素。但在这种情况下,使用 ArrayAdapter 可能会更好。当第二个活动返回新的 id 时,只从 db 中获取它们,然后将它们添加到适配器。你可以通过实现插入排序来覆盖 add(T) 方法,这样你的适配器就会被排序,你可以存储新插入元素的索引,然后滚动到这个位置。

【讨论】:

  • 是的,你是对的,我最终选择了迭代光标来找到元素的位置,正如你在这里建议的那样。然后我打电话给getListView().setSelection( position )。谢谢
猜你喜欢
  • 2017-11-11
  • 2017-10-02
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多