2014-08-31 137 views
2

我有一个EditText将singleLine属性设置为true。当我按下键盘上的Enter时,键盘被隐藏。是否有可能防止这种情况发生?在EditText中按下Enter时停止键盘关闭?

+0

应该发生什么而不是隐藏键盘? – 2014-08-31 19:24:22

+0

如果edittext为空,我不希望它关闭键盘。只是想让它看起来可见。这样可以保存用户按下EditText以再次打开键盘。 – Nick 2014-08-31 19:26:30

回答

0

这会帮助你

youredittext.setOnEditorActionListener(new OnEditorActionListener() { 

    @Override 
    public boolean onEditorAction(TextView v, int keyCode, KeyEvent event) { 
     if ((event.getAction() == KeyEvent.ACTION_DOWN ) && 
      (keyCode   == KeyEvent.KEYCODE_ENTER) ) 
     {    
      // hide virtual keyboard 
      InputMethodManager imm = 
       (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.showSoftInputFromInputMethod(edittext.getWindowToken(), 0); 
      return true; 
     } 
     return false; 
    } 
}); 

当你按下回车键的inputMethodManager将显示键盘,如果需要的话。

希望这将解决你的问题:)

编辑: 如果这行不通尽量使用event.getKeyCode()中的,如果statment 编辑II的SECEND部分:对不起,我读错,我现在就试试这个。

+0

我不想让它隐藏... – Nick 2014-08-31 19:31:16

+0

对不起,我编辑了答案 – Amirag 2014-08-31 19:41:25

2

我一直在使用导致此问题的OnKeyListener。切换到OnEditorActionListener可以在按下Enter键时停止键盘关闭,并允许我完全控制它。

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_ACTION_NEXT || actionId == EditorInfo.IME_ACTION_DONE) { 
       //DO THINGS HERE 
       return true; 
      } 
      return false; 
     } 
    }); 
相关问题