【问题标题】:Android listview get right position of list item when textfilterandroid listview在textfilter时获取列表项的正确位置
【发布时间】:2012-08-04 23:50:00
【问题描述】:

我对列表视图有疑问。我有一个启用了文本过滤器的列表视图。当我单击没有 textfilter 的列表项时,我得到了位置并将其提供给下一个活动,该活动根据位置显示正确的文本。但是当我使用文本过滤器并单击一个项目时,下一个活动会向我显示错误的文本,可能是因为列表项的位置发生了变化。有人有解决这个问题的方法吗,例如不使用位置而是列表项的另一个引用?我到处寻找,但找不到解决方案。

提前致谢

【问题讨论】:

  • 如果你放更多代码,我们会更容易。

标签: android listview position


【解决方案1】:

您可以直接从 listAdapter 中的position 获取正确的项目。它仅包含列表中显示的当前项目。

listAdapter .getItem(position);

参考:onItemClick gives index/ position of item on visible page ... not actual index of the item in list ..problem on enabling setTextFilterEnabled .. android

【讨论】:

  • 但这就是问题所在。我不想要只当前显示的项目我想要所有项目!
  • 您可以从 listadapter 获取项目,并通过 Intent Extras 将唯一需要的数据发送到其他 Activity..
  • 但它会是正确的位置(未过滤列表中的位置)还是显示的过滤列表中的位置?
  • 在第一个活动本身中获取项目..将项目中的所有数据放入意图并开始活动...在下一个活动中从意图和使用中获取所有数据..
  • 不需要发送位置..因为您无法在原始列表中获得正确项目的位置...
【解决方案2】:

如果position有问题,可以将id改成position。当列表被过滤时,onClick 事件中的position 是过滤列表中的新位置,而不是旧位置。正常,id是你的item在输入数据中的顺序

【讨论】:

  • id 和 position 完全一样
猜你喜欢
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 2015-02-16
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
相关资源
最近更新 更多