我正在尝试使用 AutoCompleteTextView 从可能很长的候选项目列表中选择一个项目。我可以很好地显示列表,并且当用户选择自动完成建议之一时,我可以调用 onItemClick。问题是,onItemClick 中报告的“位置”是过滤项目下拉列表中的位置,而不是原始候选列表中的位置。
我需要知道我提供给 ArrayAdapter 的原始列表中所选项目的索引,而不是过滤后下拉列表中的位置。
我尝试继承 AutoCompleteTextView 并覆盖 onCommitCompletion,它应该提供原始列表索引,但在选择项目时不会调用它。
我还尝试对 BaseAdapter 进行子类化,这样我就可以自己生成自动完成列表的视图,并为每个项目生成带有应用程序对象的 setTag,但 AutoCompleteTextView 不会接受 setAdapter 的 BaseAdapter 子类。
我不敢相信如果不完全重写 AutoCompleteTextView 就没有办法做到这一点。
希望有人对此有答案!