2013-10-16 64 views

回答

3

我發現設置原始 EditText的輸入類型爲多行工作在「正常」輸入類型不是。

final EditText remark = new EditText(MyClass.this);  
remark.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 

這是爲我做的。

0

您可能可以通過創建一個新的TextWatcher來完成此任務。將此textwatcher註冊到您的EditText並在收到返回鍵時執行breakline。

編輯:

爲了處理一個單獨的按鍵,實現的onkeydown()或的onkeyup()作爲合適的。通常,如果您想確保只收到一個事件,則應該使用onKeyUp()。如果用戶按下並按住按鈕,則會多次調用onKeyDown()。

例如:

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    switch (keyCode) { 

     case KeyEvent.KEYCODE_ENTER: 

      /* This is a sample for handling the Enter button */ 

      return true 


     default: 
      return super.onKeyUp(keyCode, event); 
    } 
} 

來源:

機器人:

http://developer.android.com/training/keyboard-input/commands.html

所述的KeyEvents列表:

http://developer.android.com/reference/android/view/KeyEvent.html

+0

據我可以找到一個TextWatcher只能監視輸入的文本,而不是像輸入(返回)按鈕的功能鍵。還是我完全錯了? – LocalHourglass

+0

你說得對。讓我編輯我的答案。 – RobertoNovelo

+1

這確實適用於覆蓋鍵盤按鍵的行爲。雖然我發現了一個更爲簡單的解決方案..謝謝在任何情況下,它幫助了我很多。 – LocalHourglass