2010-06-24 10 views
7
<EditText android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:layout_weight="1" 
    android:id="@+id/name" android:singleLine="true" 
    android:maxLength="12" android:capitalize="none" android:inputType="text" /> 
<Button android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/search_button" 
    android:text="Search" /> 

Mam to na górze mojej aplikacji. Po uruchomieniu aplikacji EditText jest podświetlony na pomarańczowo i ma kursor; po dotknięciu EditText pojawia się miękka klawiatura. Użytkownik używa go do wpisania w EditText.Android: EditText i Button; kiedy klikniesz przycisk, cofniesz EditText i ukryjesz klawiaturę?

Jednak po kliknięciu przycisku moja metoda onClick uruchamia się i robi wszystko, co powinna, jednak miękka klawiatura pozostaje na ekranie, a EditText jest nadal podświetlony kursorem.

Mam też na górze przycisk onclick:

findViewById(R.id.name).clearFocus(); 

Pomimo tego, EditText nie wydaje się, aby wyczyścić jego ostrość. Jak sprawić, by przycisk rzeczywiście działał tak, jakby przesyłał formularz?

Ponadto, nie przechodzę do innej aktywności po kliknięciu przycisku. Przypuszczam, że jest to typowy przypadek i prawdopodobnie powód, dla którego nie zawracają sobie głowy ukrywaniem klawiatury. Jednak chcę zachować pole wyszukiwania i przycisk w górnej części ekranu, więc dynamicznie wypełniam i dodaję widoki do ekranu po naciśnięciu przycisku.

Jak mogę osiągnąć pożądane zachowanie?

Odpowiedz

13

Możesz ukryć klawiaturę, dzwoniąc.

InputMethodManager imm = (InputMethodManager) getSystemService(
    INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getWindowToken(), 0); 
+0

Tak, ale czy to naprawdę najlepszy sposób na zrobienie tego? – Ricket

+0

Cóż, zadziałało ... Domyślam się, że jest w porządku ... Wydaje się, że jest to hack ... – Ricket

+1

To nie jest hack, tak to się dzieje w całym źródle Androida. Zakładam, że jest on przeznaczony dla użytkownika, który musi nacisnąć, aby zamknąć edytor IME, ale jeśli nie, lub jeśli chcesz go zamknąć ręcznie, musisz zamknąć IME, zanim Android sam go zamknie. –

Powiązane problemy