2014-11-03 2 views
0

Я думаю, что я не могу использовать правильные слова, чтобы найти мой желаемый код для этого, поскольку я думаю, что это выполнимо.Когда клавиатура активна, а затем коснитесь экрана в любом месте, закройте клавиатуру

Я просто хочу закрыть вид клавиатуры с андроида, если я нажимаю в любом месте, кроме клавиш. (над клавиатурой фактически ...)

E.g. когда я в EditView, закончил редактирование.

+0

сворачивания клавиатуры –

+0

Вот что я искал: http://stackoverflow.com/questions/4165414/how-to-hide-soft-keyboard-on-android-after-click-outside-edittext –

ответ

0

Это функция, которую вы должны использовать, чтобы скрыть экранную клавиатуру,

public static void hideSoftKeyboard(Context context){ 
    InputMethodManager inputMethodManager = (InputMethodManager) context 
      .getSystemService(Activity.INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(context.getCurrentFocus() 
      .getWindowToken(), 0); 
} 
+0

И где именно я должен называть этот метод? –

+0

вам нужно применить какой-то сенсорный слушатель (особенно singleTap) в представлении (возможно, родительский вид) в вашей деятельности, на котором вы хотите спрятать свою клавиатуру. Покажите мне, что вы планируете, я скажу вам –

0
EditText myEditText = (EditText) findViewById(R.id.myEditText); 
InputMethodManager imm = (InputMethodManager)getSystemService(
     Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
+0

Кажется, работать для меня. Когда я нажимаю EditView, а затем нажимаю в любом месте экрана, клавиатура все еще остается там. –

0
EditText myEditText = (EditText) findViewById(R.id.myEditText); 
myEditText.setOnEditorActionListener(onEditorActionListener); 

protected OnEditorActionListener onEditorActionListener = new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
      resetTimeout(); 
      InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
      v.clearFocus(); 
     } 

     return false; 
    } 
}; 
+0

Это сработало для меня! – helleye

+0

@helleye - пожалуйста, повысьте, если это вам помогло. –

Смежные вопросы