2011-10-17 23 views
0

私は2つのEditTextフィールドを持つアクティビティを持っています。だから私が最初のものでenterを押すと、2番目のものがフォーカスされます。Android:フォーカスを変更しないようにEnterキーを無視する方法

しかし、最初のEditTextでEnterキーを無効にしたい場合があります(たとえば、ユーザーが最初のEditTextに適切な入力をしていないと思われる場合など)。

キーイベントがKEYCODE_ENTERのときにtrueを返すが、それは役に立たないが、最初のEditTextのonKeyDownを上書きしている。

どうすればよいですか?

答えて

0

どのようにOnFocusChangeListenerを追加するのですか?あなたのEditTextがフォーカスを失うと、あなたは検証を行い、 "正しい"フィールドのrequestFocusを実行できます。

+0

はい、それは完全に私のEditTextを残してから私を防止します。私はそれを本当に望んでいない。そのような場合には、Enterキーのみを無効にしたいと思います。 これはAndroidのUIガイドラインに反する可能性があるので、私はこれをしない方がよいと思いますか? –

+0

これはおそらく役に立ちます:http://stackoverflow.com/questions/1489852/android-handle-enter-in-an-edittext – Tom

0

だけeditorActionListenerを追加することによって:onFocusChangeListenerに私は戻って私のEditTextにフォーカスを設定している場合、私は「正しい」入力を作ったまで

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

関連する問題