Invité Posté(e) 18 septembre 2012 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";
chpil Posté(e) 18 septembre 2012 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); } ...
Invité Posté(e) 18 septembre 2012 Posté(e) 18 septembre 2012 Merci beaucoup ! ça marche impeccable maintenant
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.