2014-08-31 138 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; 
     } 
    }); 
相關問題