2012-11-14 9 views
9

Przeprowadzam badania na temat dostawców treści i konfiguracji umożliwiających wyszukiwanie. Skonfigurowałem klasę, która rozszerza Dostawcę Treści o bazę danych, która dostarcza sugestie z bazy danych podczas pisania przez użytkownika. Wykorzystuje to paradygmat Search Manager (nie jest to SearchView).Jak rozpocząć wyświetlanie sugestii od razu w Androidzie do wyszukania, zanim użytkownik zaczął już pisać

Do tego momentu wszystko działa świetnie.

To, co chciałbym zrobić i mam z tym problemy, to wyświetlenie sugestii: przed użytkownik zaczyna pisać po uruchomieniu wyszukiwania. Ustawienie właściwości "android: searchSuggestThreshold =" 0 "" w pliku searchable.xml działa tylko wtedy, gdy użytkownik kliknie w polu tekstowym wyszukiwania po uruchomieniu - chciałbym wyświetlić sugestie natychmiast po rozpoczęciu wyszukiwania (np. Nie czekać na użytkownik do zrobienia czegokolwiek innego).

Wszelkie pomysły?

Edycja: Przykładem tego, o czym mówię, jest funkcja wyszukiwania w aplikacji Sklep Google Play - w momencie, gdy użytkownik kliknie szkło powiększające w celu wyszukiwania, natychmiast pojawia się lista ostatnich sugestii.

Odpowiedz

3

Po spędzeniu wielu godzin na tym, w końcu znalazłem sposób, aby osiągnąć to, czego potrzebowałem. Oto odpowiedź, więc być może mniej cierpi na to inni deweloperzy:

Wyszukiwarka dla trybu wyszukiwania ma zmieniony tekst słuchacza, i tylko po zmianie tekstu wywołuje żądanie sugestii. Oczywiście, dla stanu początkowego nic się nie zmieniło, więc nie żąda sugestii za pomocą funkcji query().

w celu „trick” z SearchView do myślenia tekst został zmieniony, można wykonać następujące czynności:

@Override 
public boolean onSearchRequested() 
{ 
    final SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);  

    searchManager.startSearch(" ", true, getComponentName(), null, false); 

    return super.onSearchRequested(); 
} 
Powiązane problemy