2013-08-14 12 views

Odpowiedz

15

ten sposób pokażę ketyboard:

EditText yourEditText= (EditText) findViewById(R.id.yourEditText); 
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); 
+9

To naprawdę działa. Ale musisz najpierw "requestFocus()" do EditText, a następnie otworzyć klawiaturę, nie działa w odwrotnej kolejności. – gaborsch

+1

1+ dla komentarza @GaborSch. Dzięki. –

6

aby pokazać klawiaturę, należy użyć następującego kodu.

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); 

Aby ukryć klawiaturę, użyj poniższego kodu. et jest odniesienie do EditText

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

Aby to zrobić na podstawie ostrości słuchacza należy udać się do:

final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); 
editText.setOnFocusChangeListener(new OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus){ 
       imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); 
      }else{ 
       imm.hideSoftInputFromWindow(et.getWindowToken(), 0); 
      } 
      imm.toggleSoftInput(0, 0); 
     } 
    }); 

Nadzieja to pomaga.

Pozdrawiam!

22
<activity android:name=".YourActivity" 
      android:windowSoftInputMode="stateVisible" /> 

Dodaj do tego pliku manifestu ...

+0

Ten działa, dziękuję.) W mojej sytuacji jedno działanie zostaje skupione, gdy się otwiera (powyższa konfiguracja nie znajduje się w pliku manifestu). Inną czynnością, której ten sam kod i projekt nie ma, dopóki nie doda tego powyżej, aby zamanifestować: /. To dziwne, że nie mogłem zrozumieć dlaczego. –

6

ustawić to za aktywność w oczywisty pop klawiaturę automatycznie gdy ekran pochodzi EditText pudełko

<activity android:windowSoftInputMode="stateAlwaysVisible" ... /> 

aby ukryć klawiaturę na utratę zawierający focus ustawianie OnFocusChangeListener dla EditText.

W onCreate()

EditText editText = (EditText) findViewById(R.id.textbox); 
OnFocusChangeListener ofcListener = new MyFocusChangeListener(); 
editText.setOnFocusChangeListener(ofcListener); 

Dodaj tej klasy

private class MyFocusChangeListener implements OnFocusChangeListener { 

    public void onFocusChange(View v, boolean hasFocus){ 

     if(v.getId() == R.id.textbox && !hasFocus) { 

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

     } 
    } 
} 
Powiązane problemy