2017-08-29 1 views
1

J'essaie de vérifier la condition editText. Dans le code ci-dessous, j'ai déclaré une méthode setOnClickListener pour vérifier la condition de editText. Si la condition est vraie, je veux imprimer un message toast, changer l'activité et émettre un son. Si la condition échoue, il devrait griller un seul message. Dans les deux cas, si c'est vrai ou non, il m'imprime seulement "Incorcer", peu importe si editText est correct.Erreur lors de la vérification de l'entrée utilisateur

Qu'est-ce que je fais mal?

public void next(View v){ 

    final MediaPlayer correctSound = MediaPlayer.create(this, R.raw.correctsound); 
    Button playCorrectSound = (Button) this.findViewById(R.id.angry_btn1); 

    final EditText editTextt = (EditText) findViewById(R.id.editText); 

    playCorrectSound.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      editTextt.setVisibility(View.INVISIBLE); 
      if(editTextt.getText().toString() == "string") 
      { 
       Toast.makeText(getApplicationContext(), "Correct", Toast.LENGTH_SHORT).show(); 
       correctSound.start(); 
       Intent i = new Intent(Hereuu.this, MainActivity.class); 
       startActivity(i); 
      } else { 
       Context context = getApplicationContext(); 
       CharSequence text = "Incorect"; 
       int duration = Toast.LENGTH_SHORT; 
       Toast toast = Toast.makeText(context, text, duration); 
       toast.show(); 
      } 
      editTextt.setVisibility(View.VISIBLE); 

     } 
    }); 

} 

Répondre

0

Comme tout le monde avait dit, vous

Fondamentalement, lorsque vous utilisez l'opérateur ==, vous êtes vérifier si la référence pour l'objet sont les mêmes/égaux. Lorsque vous utilisez .equals(String), la méthode vérifie le contenu.

conseil: Lorsque vous travaillez avec Strings, n'oubliez pas d'éviter les situations NullPointerException. Donc, vous devriez écrire "constant".equals(editTextValue) au lieu de editTextValue.equals("constant")

Le lien ci-dessous vous aidera à comprendre comment les objets String et travail contenu chaîne:

Java String.equals versus ==

concernant

0

Je vous suggère de prendre quelques leçons de JAVA de base. Cela vous aidera énormément.

Pour l'instant, le problème réside dans la façon dont vous vérifiez l'égalité des chaînes. Vous n'utilisez pas == avec des chaînes, vous utilisez la méthode String#equals(). Ainsi,

changement

editTextt.getText().toString() == "string"

à

editTextt.getText().toString().equals("string")

0

Assurez-vous de comparer des chaînes en Java avec .equals et non ==. Utilisez cette instruction if:

if(editTextt.getText().toString().equals("string"){