我想要什么
一个简单的EditText。用户应该能够在任何时间输入文本。
点击此EditText,弹出窗口应该出现在EditText上。
onClick此EditText,如果已经显示弹出窗口,则关闭弹出窗口。
此弹出窗口将包含一个项目列表(我决定并且不进行过滤),点击其中EditText将被点击的项目填充。
当我开始输入时,弹出窗口应该消失。
我应该可以设置下拉列表的动画。
我有什么选择
显然,AutoCompleteTextView。自定义AutoCompleteTextView后工作得很好。但有两个问题?
我能够完成第1,2,4和5点。我如何绕过这个3号和5号?
因为没有效果......
我以为我可以放一个编辑文本并显示一个弹出窗口。 :)
但这完全失败了......
我只是想做一些简单的方法。我添加了一个EditText。然后我创建了一个PopupWindow类并在其中夸大了listview。然后我将它锚定到我的EditText。现在问题再次出现 -
我点击EditText。弹出窗口出现。占据所有焦点,键盘消失。绝对不是我想要的。所以我让弹出窗口无法调焦。
现在我点击EditText,弹出窗口出现。不重点关注。所以键盘保持输入。就像我想要的那样完美。但是,当我单击ListView中的列表项时,它不会执行任何操作。为什么?它无法集中精力!
那我现在该怎么办?我该走哪条路?
答案 0 :(得分:0)
对于3.您可以创建onFocusChange侦听器,或者onClickListener并显式调用_autoCompleteView.dismissDropDown();
。你可以使用isPopupShowing()
查看它是否已经显示,并在这种情况下手动关闭它。
对于5.你只是做同样的事情,但你做_autoCompleteView.registerDataSetObserver
并将该逻辑放在onChanged()
事件中,或者可能放在autoCompleteTextView上的addTextChangedListener
中。
我不完全确定这是否是您正在寻找的功能,但这个线程现在已经差不多一年了,所以也许它对未来的某些人有用。