2011-01-30 16 views
7

Z android tutorialu:Po typu w EditText, jak sprawić, by klawiatura zniknie

pass_text.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     // If the event is a key-down event on the "enter" button 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) 
       && (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      // Perform action on key press 
      return true; 
     } 
     return false; 
     } 
    }); 
} 

gdy kliknięcie na EditText, posiada klawiaturę pojawi się na ramce. Chcę wiedzieć po Enter. Jak zrobić klawiaturę z ramki, z wyjątkiem kliknięcia Wstecz.

enter image description here

Dziękuję

Odpowiedz

24

Spróbuj następującą

na aktywność:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
mgr.hideSoftInputFromWindow(curEditText.getWindowToken(), 0); 

W przypadku Fragment:

InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
     mgr.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); 
+0

Dziękuję za odpowiedź. – Yoo

14

pole EditText ma atrybut android:imeOptions="actionDone" spowoduje to zmianę przycisku Enter na przycisk Gotowe, który zamknie klawiaturę.

+0

Dziękuję. Myślę, że jest to lepsza i bardziej odpowiednia odpowiedź. – Shiun

+2

Słowo ostrzeżenia jednak: to nie działa na 100% telefonów tam na zewnątrz – atraudes

+1

@atraudes Widziałem problemy, niektóre telefony też chcą singleline = true nie miały problemu poza tym. – schwiz

1

Podejście robocze polegające na pozbyciu się klawiatury miękkiej polega na wyłączeniu i włączeniu pola TextEdit w zdarzeniu Return-key, naciśnięciu przycisku lub innym podobnym. Na przykład:

.... 
pass_text.setEnabled(false); 
pass_text.setEnabled(true); 
.... 
+0

Ta odpowiedź może nie pasować najlepiej do problemu osoby pytającej, ale pomaga wszystkim innym SO. To powinna być zaakceptowana odpowiedź. –

0

myślę, że możemy po prostu dodać ten atrybut naszego EditText:

android: InputType = "text"

To automatycznie wymusić tekst być w jednej linii i dlatego gdy klikniemy Enter, klawiatura zniknie.

Powiązane problemy