0

我有一个存储在 ArrayAdapter 中的 100K+ 物品的库存清单。我用它来填充 ListView。我使用带有 TextChangedListener 的 EditText 框根据在 EditText 框中键入的内容来跳转库存列表。目前,我的第一种方法是编写以下代码......

    ListView01.setSelection(adapter.getPosition(charSeq.toString()));

这将搜索 ArrayList 以提供数组中的项目位置,并且 setSelection 将 ListView 跳转到列表中的该点。这工作得很好,但它只适用于完全匹配并且不能提供我需要的功能。无论是否完全匹配,我都想在列表中跳转。如果我开始输入“c”,我希望列表跳转到以“c”开头的第一个项目,并在我输入时继续在列表中跳转,而不是仅跳转到基于精确匹配的位置。

那么,他们是不是像“startsWith”这样的函数可以用来搜索arrayAdapter或ListView来给我跳转的位置?他们是我应该采取的另一种方法吗?我不想设置过滤器,因为这会从视图中删除项目。我已经尝试过这种方法。输入第一个字母后,过滤器还需要 45 秒来过滤库存列表。我想在没有从 ListView 中删除任何项目的情况下跳转到新位置后自由地向上或向下滚动列表。

4

0 回答 0