调整AutoCompleteTextView以满足我的需求?

时间:2012-04-16 13:22:32

标签: android android-layout autocompletetextview

我想要什么

  1. 一个简单的EditText。用户应该能够在任何时间输入文本。

  2. 点击此EditText,弹出窗口应该出现在EditText上。

  3. onClick此EditText,如果已经显示弹出窗口,则关闭弹出窗口。

  4. 此弹出窗口将包含一个项目列表(我决定并且不进行过滤),点击其中EditText将被点击的项目填充。

  5. 当我开始输入时,弹出窗口应该消失。

  6. 我应该可以设置下拉列表的动画。

  7. 我有什么选择

    显然,AutoCompleteTextView。自定义AutoCompleteTextView后工作得很好。但有两个问题?

    我能够完成第1,2,4和5点。我如何绕过这个3号和5号?

    因为没有效果......

    我以为我可以放一个编辑文本并显示一个弹出窗口。 :)

    但这完全失败了......

    我只是想做一些简单的方法。我添加了一个EditText。然后我创建了一个PopupWindow类并在其中夸大了listview。然后我将它锚定到我的EditText。现在问题再次出现 -

    1. 我点击EditText。弹出窗口出现。占据所有焦点,键盘消失。绝对不是我想要的。所以我让弹出窗口无法调焦。

    2. 现在我点击EditText,弹出窗口出现。不重点关注。所以键盘保持输入。就像我想要的那样完美。但是,当我单击ListView中的列表项时,它不会执行任何操作。为什么?它无法集中精力!

    3. 那我现在该怎么办?我该走哪条路?

1 个答案:

答案 0 :(得分:0)

对于3.您可以创建onFocusChange侦听器,或者onClickListener并显式调用_autoCompleteView.dismissDropDown();。你可以使用isPopupShowing()查看它是否已经显示,并在这种情况下手动关闭它。

对于5.你只是做同样的事情,但你做_autoCompleteView.registerDataSetObserver并将该逻辑放在onChanged()事件中,或者可能放在autoCompleteTextView上的addTextChangedListener中。

我不完全确定这是否是您正在寻找的功能,但这个线程现在已经差不多一年了,所以也许它对未来的某些人有用。