2011-10-17 35 views
0

我有一個有兩個EditText字段的活動。所以當我在第一個按下輸入時,第二個就變得專注了。Android:如何忽略回車鍵,使焦點不會改變

但是,我想在第一個EditText中有時禁用Enter鍵(例如,當我認爲用戶沒有對第一個EditText進行正確輸入時)。

我已經覆蓋onKeyDown的第一個EditText,當key事件是KEYCODE_ENTER時返回true,但這沒有幫助。

我該怎麼辦?

回答

0

如何添加OnFocusChangeListener?當您的EditText失去焦點時,您可以進行驗證,並可以爲「正確」字段執行requestFocus。

+0

是的,但如果在onFocusChangeListener我把焦點回到我的EditText那將完全阻止我離開我的EditText,直到我做了「正確」的輸入。我真的不想那樣。相反,在這種情況下,我想僅禁用Enter鍵。 您認爲我最好不要這樣做,因爲這可能與Android UI準則相矛盾? –

+0

也許這有助於:http://stackoverflow.com/questions/1489852/android-handle-enter-in-an-edittext – Tom

0

只需通過添加editorActionListener:

editText1.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
       if(isValidContent(editText1.getText().toString()){ 
        editText2.requestFocus(); 
        return true; 
       } else { 
         .... 
       } 
      } 
      return false; 
     } 
    }); 
+0

和編輯文本必須是singleLine =「true」 – ldd