2012-07-30 54 views
5

我在我的應用程序中使用AutoCompleteTextView自定義適配器,它可以在縱向模式下工作。然而,在水平模式下,軟件鍵盤佔據大部分屏幕,文本視圖使用疊加按鈕而不是由適配器提供的視圖。AutoCompleteTextView提示橫向模式

我無法找到關於這是如何在幕後工作的明確文件。看起來在橫向模式下AutoCompleteTextView繞過適配器的getView()方法,使用getItem()做一些骯髒的工作,並使用原始字符串呈現項目本身。

更糟糕的是它似乎在AutoCompleteTextView是accualy呈現自動完成提示的兩個列表:標準的下拉列表並覆蓋按鈕的同時 (這是非常明顯的,如果我們設置imeOptions到flagNoExtractUi防止AutoCompleteTextView橫向擴展) 。

我想在這兩種情況下提供自己的視圖 - 但我設法只爲下拉菜單做到這一點。提供覆蓋列表的自定義視圖的任何更改?

抱歉,由於排名較低,我無法發佈圖片。如果有人需要他們,我可以寄給他們。

+0

你可以幫我這個http://stackoverflow.com/questions/29046302/how-to-implement-autocompletetextview-with-listview – 2015-03-16 06:16:17

回答

0

我剛剛遇到了這個問題。就像你說的,在橫向上,TextView是基於getItem()的結果自動完成提示。在這種情況下,我真的沒有辦法提供除文本以外的其他任何內容,但是獲取正確文本以顯示在橫向中的簡單解決方案是覆蓋toString()作爲您提示基礎的對象。

舉例來說,在我的情況,我使用聯繫對象的列表來填充我的自動完成的提示,所以我在跟類推翻toString()得到它,以示「姓」,而不是像「跟原始對象表示@ a2a6d4d3a5「。

+0

有一個[更好的解決方案](http://stackoverflow.com/a/12934794/2469901),而不是改變toString()的工作方式,哪一個可能希望以不同的方式實現。 – Skytile 2014-05-08 16:30:16