(开发内容顺承上一篇博客。。。。)
我写登陆框的时候,在AutoCompleteTextView的dropdown中自定义了每个item的布局,并且在每个item显示布局的右边添加了一个删除功能的按钮(就像QQ Android的账号输入那样)。这样导致item的onSelected事件无法被捕捉到,点击dropdown的item,完全没有反应。
为解决该点击响应的问题,我为item的自定义布局添加了onClickListener来代替原来dropdown的itemSelected事件的处理方法,然后对AutoCompleteTextView控件通过setText()使之显示选择的账号。。。。
接着dropdown的框框就弹出来了(因为匹配到了字符串), 尽管我在setText()之后dismissDropDown()也是没有用的, 因为dropDown在一段延迟之后才show出来。所以当调用dismissDropDown()的时候,dropDown根本都还没有出现呢……
我的解决方法是,在setText()之后,改变Threshold的值,例如setThreshold(100),随便一个很大的值,这样因为AutoCompleteTextView中字符数没有达到Threshold的值,于是不会进行匹配,自然dropdown的框框也就不会出来了。
然后再添加一个AutoCompleteTextView的setOnTextChangedListener,在里面把Threshold改回正常的值,这样通过键盘敲入的字符输入也可以得到正常的匹配。
这个问题就解决啦~ 目前还蛮好用,没有出现什么问题。。。。
我写登陆框的时候,在AutoCompleteTextView的dropdown中自定义了每个item的布局,并且在每个item显示布局的右边添加了一个删除功能的按钮(就像QQ Android的账号输入那样)。这样导致item的onSelected事件无法被捕捉到,点击dropdown的item,完全没有反应。
为解决该点击响应的问题,我为item的自定义布局添加了onClickListener来代替原来dropdown的itemSelected事件的处理方法,然后对AutoCompleteTextView控件通过setText()使之显示选择的账号。。。。
接着dropdown的框框就弹出来了(因为匹配到了字符串), 尽管我在setText()之后dismissDropDown()也是没有用的, 因为dropDown在一段延迟之后才show出来。所以当调用dismissDropDown()的时候,dropDown根本都还没有出现呢……
我的解决方法是,在setText()之后,改变Threshold的值,例如setThreshold(100),随便一个很大的值,这样因为AutoCompleteTextView中字符数没有达到Threshold的值,于是不会进行匹配,自然dropdown的框框也就不会出来了。
然后再添加一个AutoCompleteTextView的setOnTextChangedListener,在里面把Threshold改回正常的值,这样通过键盘敲入的字符输入也可以得到正常的匹配。
这个问题就解决啦~ 目前还蛮好用,没有出现什么问题。。。。