Zenos77 Posté(e) 18 septembre 2012 Share Posté(e) 18 septembre 2012 Bonjour, j'ai (encore) un problème avec mon code : l'appui sur le bouton est censé comparer deux textes, et afficher le fond de l'editText en vert si ça correspond, en rouge sinon. Le problème c'est que ça met tout le temps le fond en rouge même quand les textes correspondent (pour vérifier ça j'ai mis la dernière ligne qui affiche les deux textes sur la même ligne) private onclickListener button6Listener = new onclickListener() { public void onclick(View v) { h = h+1; TextView textView1= (TextView) findViewById(R.id.textView1); EditText editText1 = (EditText)findViewById(R.id.editText1); if(editText1.getText().toString() == t1){editText1.setBackgroundColor(Color.GREEN);} else {editText1.setBackgroundColor(Color.RED);}; textView1.setText(t1+editText1.getText().toString()); } }; pour info la variable t1 est définie de la manière suivante : public String t1; t1 = "toto"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 18 septembre 2012 Share Posté(e) 18 septembre 2012 L'opérateur == ne peut pas être utilisé pour faire la comparaison de deux chaines de caractères (ou de tout autre objet). Il fait le test sur la référence des objets, par leur valeurs. A n'utiliser que pour les types primitifs Dans ton cas, il te faut utiliser la méthode equals() if (editText1.getText().toString().equals(t1) { editText1.setBackgroundColor(Color.GREEN); } ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Zenos77 Posté(e) 18 septembre 2012 Auteur Share Posté(e) 18 septembre 2012 Merci beaucoup ! ça marche impeccable maintenant Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.