2012-04-16 42 views
1

我想調整AutoCompleteTextView以適合我的需求?

  1. 一個簡單的EditText什麼。用戶應該能夠在任何時間點輸入文字。

  2. onClick這個EditText,一個彈出窗口應該出現在EditText上。

  3. onClick此EditText,如果彈出窗口已被顯示,則關閉彈出窗口。

  4. 這個彈出窗口將包含一個項目列表(我決定,不過濾)點擊EditText將被填充單擊的項目。

  5. 當我開始輸入時,彈出窗口應該消失。

  6. 我應該可以設置下拉列表的動畫。

什麼是我的選擇

顯然,AutoCompleteTextView。在自定義AutoCompleteTextView後工作得很好。但是有兩個問題?

我完成了第1,2,4和5點。我該如何解決這個數字3和數字5?

由於沒有奏效...

我以爲我可以只是把編輯文本,並顯示一個彈出窗口。 :)

但失敗完全...

我只是試圖做的簡單方法。我添加了一個EditText。然後我創建了一個PopupWindow類,並在其中添加了一個listview。然後我將它錨定到我的EditText。現在問題重新開始 -

  1. 我點擊EditText。彈出窗口出現。採取所有的焦點和鍵盤消失。絕對不是我想要的。所以我讓彈出式窗口不可聚焦。

  2. 現在我點擊EditText,彈出窗口出現。不關注焦點。所以鍵盤保持輸入。就像我想要的那樣完美。但是當我點擊ListView中的列表項時,它什麼也不做。爲什麼?這不是可以關注的!

那麼我現在該做什麼?我該走哪條路?

回答

0

對於3.您可以創建onFocusChange偵聽器,或onClickListener並明確地調用_autoCompleteView.dismissDropDown();。在這種情況下,您可以使用isPopupShowing()來查看它是否已經顯示並手動解除它。

對於5.你只是做同樣的事情,但你做_autoCompleteView.registerDataSetObserver並將該邏輯放在您的autoCompleteTextView onChanged()事件或可能在addTextChangedListener

我不完全確定這是否是您正在尋找的功能,但是這個線程現在已經快一年了,所以也許這對未來某個人會有幫助。