2011-01-30 82 views
7

从Android教程:中的EditText类型后,如何让键盘消失

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; 
     } 
    }); 
} 

当点击EditText上,它有一个键盘出现在框架上。我想知道回车后。 如何从框架中取出键盘,除了单击“返回”。

enter image description here

谢谢

回答

24

请尝试以下

的活动:

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

在片段的情况下:

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

谢谢你的回答。 – Yoo 2011-01-30 05:26:17

14

EditText框你有属性android:imeOptions="actionDone" 这将改变回车按钮到一个完成按钮,将关闭键盘。

+0

谢谢。我认为这是更好和更合适的答案。 – Shiun 2011-10-24 21:02:30

+2

然而,有一句话警告:这似乎不适用于那里100%的手机 – atraudes 2012-02-22 02:01:41

1

一个摆脱软键盘的工作方法是禁用,然后启用返回键事件,按钮按下事件或其他任何文本编辑字段。例如:

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

我认为,我们可以简单地将此属性添加到我们的EditText:

安卓的inputType =“文本”

这将自动强制文本是在一行和因此当我们点击Enter时,键盘消失。