gpt4 book ai didi

android autocompletetextview 应该只在下拉列表中显示相关选项

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:02 26 4
gpt4 key购买 nike

我在我的代码中使用 AutoCompleteTextView 并使用 SimpleCursorAdapter 从数据库加载列表。

AutoCompleteTextView cocktailIngredientView = (AutoCompleteTextView) findViewById(R.id.item);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, mCursor,
new String[] { "field" },
new int[] { android.R.id.text1 });
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cocktailIngredientView.setAdapter(adapter);
cocktailIngredientView.setThreshold(0);

它正确地填充了列表,但我有两个问题:

  1. 我希望对这个列表进行排序
  2. 无论我输入什么,它都会显示完整列表。我希望它根据列表中的匹配模式进行过滤。例如如果列表包含值 Page、Tools...然后如果我在框中输入 T,下拉列表应该只显示 Tools。这个想法是在字符串文本的任何位置显示包含输入模式的选项。

如何做到这一点?

最佳答案

您必须告诉适配器要显示哪些项目。我尝试通过使用 FilterQueryProvider 来实现与此类似的东西在数据库中查询我想在下拉列表中显示的项目。

FilterQueryProvider filter = new FilterQueryProvider() {

@Override
public Cursor runQuery(CharSequence constraint) {
// Make a DB query that filters based on the constraint

return //whatever query results;
}
};
myAdapter.setFilterQueryProvider(filter);

至于当你在列表中选择一个项目时的情况,你必须覆盖CursorToStringConverter SimpleCursorAdapter 的。像这样的东西:

SimpleCursorAdapter.CursorToStringConverter conv = new SimpleCursorAdapter.CursorToStringConverter() {

@Override
public CharSequence convertToString(Cursor cursor) {
int numCol = cursor.getColumnIndexOrThrow("whateverFieldYouNeed");
String term = cursor.getString(numCol);
return term;
}
};
myAdapter.setCursorToStringConverter(conv);

关于android autocompletetextview 应该只在下拉列表中显示相关选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com