2010-03-11 16 views
6

Wiem, że został poproszony wokół, ale nie znalazłem całkiem jeszcze odpowiedzi (nowy Android tak przykro z powodu niewiedzy)Android element ListView kulminacyjnym programowo

moja aplikacja jest uruchomienie aktywny ma EditText (tzw SearchBox) ListView (oznaczenia) i Spinner (typy)

Używam EditText jako pola wyszukiwania, muszę przekazać ciąg przez niestandardową edycję, aby wyszukiwanie było bardziej elastyczne. Potem odpowiadać przed najbliższego zbliżenia znajdę w „nazw” i zrobić

designations.setSelection(j); 

Zgodnie z oczekiwaniami, to ustawia żądaną pozycję na górę nazw. Ale nie mogę znaleźć sposobu na podkreślenie go za pomocą kodu.

TERAZ, wiem, że jeśli urządzenie jest w trybie dotykowym, podświetlenie wybranego elementu nie pojawi się. Tak więc ostatnie 4 linie zdarzenia onTextChanged w moim polu wyszukiwania to:

 designations.setFocusable(true);    
     designations.setFocusableInTouchMode(true); 
     if (match==true)  designations.setSelection(j); 
     if (st.length()==0) designations.setSelection(0); 

bezskutecznie.

teraz, nie mam żadnego kodu w polu wyszukiwania afterTextChanged (Editable s);

, więc czy ktoś może mi o tym powiedzieć?

pozdrowienia ~ dh

Odpowiedz

3

Wyjazd requestFocus() i może requestChildFocus()

+0

dzięki jq, które pracowały (tylko za pomocą requestFocus()). Jednak po przeczytaniu tego: http://android-developers.blogspot.com/2008/12/touch-mode.html Nie sądzę, będę realizacji podświetlanie na wszystkich Dzięki jednak, jeszcze jedno nauczyło się dzisiaj –

2

Czy próbowano ustawienie rzeczywistego View zostać wybrany?

designations.setSelection(j); 
designations.getSelectedView().setSelected(true);