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

我在代码中使用了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);

至于在列表中选择一个项目时的情况,则必须覆盖SimpleCursorAdapter的CursorToStringConverter.就像是:

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);

标签:autocompletetextview,options,android,filtering

来源: https://codeday.me/bug/20191102/1993595.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值