我有一个存储在ArrayAdapter中的100K +项目的清单。我用它来填充ListView。我使用带有TextChangedListener的EditText框根据EditText框中键入的内容跳转库存列表。目前,我的第一种方法是编写以下代码......
ListView01.setSelection(adapter.getPosition(charSeq.toString()));
这将搜索ArrayList以获取数组中的项位置,setSelection将ListView跳转到列表中的该点。这很好用,但它只适用于完全匹配,并不能提供我需要的功能。无论完全匹配与否,我都想跳到列表中。如果我开始输入“c”,我希望列表跳转到以“c”开头的第一个项目,并在我输入时继续跳转到列表,而不是仅根据完全匹配跳转到某个位置。
那么,他们是一个像“startsWith”这样的函数,可以用来搜索arrayAdapter或ListView来给我跳转的位置吗?他们应该采取另一种方法吗?我不想设置过滤器,因为这会从视图中删除项目。我已经尝试过这种方法。键入第一个字母后,过滤器还需要45秒才能过滤库存清单。在跳转到新位置后,我想在列表中自由地向上或向下滚动,而不会从ListView中删除任何项目。