论坛首页 入门技术论坛

解决AutoCompleteTextView setText()后下拉框弹出的问题

浏览 8242 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-08-14   最后修改:2010-08-14
(开发内容顺承上一篇博客。。。。)

    我写登陆框的时候,在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改回正常的值,这样通过键盘敲入的字符输入也可以得到正常的匹配。
    这个问题就解决啦~ 目前还蛮好用,没有出现什么问题。。。。
   发表时间:2010-08-25  
renaqiu 写道
(开发内容顺承上一篇博客。。。。)

    我写登陆框的时候,在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改回正常的值,这样通过键盘敲入的字符输入也可以得到正常的匹配。
    这个问题就解决啦~ 目前还蛮好用,没有出现什么问题。。。。

我干javaeye ,想投个精华帖都不可以。莫名其妙冒得分了
0 请登录后投票
   发表时间:2010-08-25  
终于看明白楼主的意思了...setThreshold(100)这个方法真够取巧的
0 请登录后投票
   发表时间:2010-09-02  
通过设置这个属性 就可以让AutoCompleteTextView控件的弹出框不可见.
autoTextView.setDropDownHeight(0);
0 请登录后投票
   发表时间:2011-06-29  
为什么我发现AutoCompleteTextView根本没有setOnTextChangedListener方法啊?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics