AutoCompleteTextView 为什么需要输入2个字母才会自动搜索呢?

rollrock1987 2010-10-28 10:08:18
比如输入a 是不搜索的 只有输入 ab(如果有abXXXXX)才会出现搜索结果,这是怎么回事呢?谢谢
...全文
243 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SmallHero007 2010-10-29
  • 打赏
  • 举报
回复
楼主可以看看 AutoCompleteTextView的源码,你会发现里面有一个setThreshold这样的方法。
这个方法就是设置你输入几个才会给出提示,系统默认的是
public void setThreshold(int threshold) {
if (threshold <= 0) {
threshold = 1;
}

mThreshold = threshold;
}
相信楼主一看就明白了, 为啥是出俩个字母才给提示了。
纠结的木棉花 2010-10-29
  • 打赏
  • 举报
回复
我个人认为它是为能够更准确的搜索而设计的,如果只输入a,那它的搜索范围太大,导致没办法显示,底下就有匹配 aa,ab,ac...这样自动搜索没有意义。


AutoCompleteTextView是一个可以完成自动提示填充内容的TextView,比TextView多的功能就是提示功能,效果如下:
AutoCompleteTextView

输入aa后会提示aaa,这是提前设置的

main.xml内的AutoCompleteTextView定义

<AutoCompleteTextView android:id="@+id/autotext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
/>

java文件里设置提示的内容:

AutoCompleteTextView autotext = (AutoCompleteTextView)findViewById(R.id.autotext);
String[] auto={"aaa","bcde","cderef"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, auto) ;
autotext.setAdapter(adapter);

类似的View还有MultiAutoCompleteTextView,多一行代码

multiauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

据说能增加提示项,但如何实现呢,我做了结果和 AutoCompleteTextView 完全一样,这行代码不加也没错误,但不给提示。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧