2012-07-30 12 views
5

Używam w mojej aplikacji AutoCompleteTextView z niestandardową kartą i działa idealnie w trybie portretu. Jednak w trybie poziomym klawiatura oprogramowania zajmuje większość ekranu, a widok tekstu używa przycisków nakładki zamiast widoków dostarczonych przez adapter.Wskazówki AutoCompleteTextView w trybie poziomym

Nie mogłem znaleźć jasnej dokumentacji na temat tego, jak działa to za kulisami. Wygląda na to, że w trybie poziomym AutoCompleteTextView omija metodę adaptera getView(), wykonuje brudną pracę przy użyciu getItem() i renderuje elementy przy użyciu ciągów ciągłych.

Co gorsza wydaje się, że w AutoCompleteTextView jest accualy przedstawiając dwie listy podpowiedzi autouzupełniania: standardowe przyciski rozwijanego i nakładek w tym samym czasie (jest to dobrze widoczne, jeśli stawiamy imeOptions do flagNoExtractUi aby zapobiec AutoCompleteTextView rozwija się w krajobraz) .

Chciałbym dostarczyć własne widoki w obu sytuacjach - ale udało mi się to zrobić tylko dla rozwijanego menu do tej pory. Jakieś zmiany w celu zapewnienia niestandardowych widoków dla nałożonych list?

Przykro mi, ale nie mogę publikować zdjęć z powodu niskiej pozycji w rankingu. Mogę je wysłać, jeśli ktoś ich potrzebuje.

+0

możesz mi pomóc z tym http://stackoverflow.com/questions/29046302/how-to-implement-autocompletetextview-with-listview –

Odpowiedz

0

Właśnie napotkałem ten problem. Tak jak powiedziałeś, w krajobrazie TextView opiera się na autouzupełnianiu podpowiedzi na temat wyniku getItem(). W tym scenariuszu nie widzę sposobu na dostarczenie czegoś innego niż tekst, ale prostym sposobem na uzyskanie prawidłowego tekstu w krajobrazie jest przesłonięcie obiektu toString() dla obiektu, na którym opierasz podpowiedź.

Na przykład w moim scenariuszu Używam listę obiektów kontaktowe do wypełnienia moich podpowiedzi autouzupełniania, więc overrode toString() w mojej klasie Kontakt, aby to pokazać „Imię Nazwisko” zamiast surowego reprezentacji obiektów, takich jak „Kontakt @ a2a6d4d3a5. "

+0

Istnieje [lepsze rozwiązanie] (http://stackoverflow.com/a/12934794/2469901) niż zmiana sposobu działania funkcji toString(), którą można chcieć zaimplementować inaczej niż w tym jednym scenariuszu. – Skytile

Powiązane problemy