2017-07-13 7 views
0

EditTextEditTextは間違った答えの後に別の入力を受け付けませんか?

mEdit.setOnKeyListener(new View.OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { 

     if(sumAsString.equals(mEdit.getText().toString())) { 
      Toast.makeText(getApplicationContext(), "That's right!", Toast.LENGTH_SHORT).show(); 
     } else { 
      mEdit.setText(null); 
      Toast.makeText(getApplicationContext(), "Sorry Try again ", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
     } 
     return false; 
    } 
}); 
+0

この行を削除してみてください 'return true; ' –

+0

KeyListenerの代わりに[TextWatcher](https://developer.android.com/reference/android/text/TextWatcher.html)を使うことをお勧めします。 – Ali

+0

'mEdit.setText(null);'この行は使えますか? –

答えて

-1

return false;を削除してくださいまたは括弧の上にそれを置くために別の入力を可能にすること、間違った答えを処理ループを作成する必要があります。

mEdit.setOnKeyListener(new View.OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { 

          if(sumAsString.equals(mEdit.getText().toString())) { 
            Toast.makeText(getApplicationContext(), "That's right!", Toast.LENGTH_SHORT).show(); 
          } else { 
           mEdit.setText(null); 
           Toast.makeText(getApplicationContext(), "Sorry Try again ", Toast.LENGTH_SHORT).show(); 

           return true; 

          } 
          return false; 
         } 
        } 
       }); 
+1

メソッドとして動作しませんonKey'はbooleanを返します – ELITE

0

代わり

<EditText 
    android:id="@+id/password" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="@string/prompt_password" 
    android:imeActionId="@+id/login" 
    android:imeOptions="actionDone" 
    android:inputType="textPassword" 
    android:maxLines="1" 
    android:singleLine="true"/> 

以下のようなキーリスナーの使用IME_ACTIONそして

editText.setOnEditorActionListener(new EditText.OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(EditText v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
      //do here your stuff f 
      return true; 
     } 
     return false; 
    } 
}); 

以下のようにEditTextOnEditorActionListenerを使用するには、this answerを参照してください。

お手伝いします。

関連する問題