vrnxsz Posté(e) 20 mai 2011 Share Posté(e) 20 mai 2011 Bonjour, J'ai peu d'expérience dans le développement android mais là je trouve vraiment bizzare. J'ai ceci: Soit une condition et deux variables qui ont la même valeur. Mon problème est que ca ne passe pas, c'est comme si la variables n'étaient pas égales. Je pars toujours dans le else et là j'avoue ne pas comprendre pourquoi. :/ C'est simplement une activité qui demande à l'utilisateur de taper un certain mot de passe. Si le mot de passe est bon, on instancie l'activité suivante. Sinon on toast un "wrong". public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.beta); ed_code = (EditText) findViewById(R.id.et_beta_01); bu_ok = (Button) findViewById(R.id.bu_beta); bu_ok.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String code = ed_code.getText().toString(); String target = "vsi8"; Log.v(TAG, code+"="+target); if(code == target){ Intent intent = new Intent(BetaCheck.this, AppMenu.class); startActivity(intent); } else { Toast.makeText(getApplicationContext(), "wrong", Toast.LENGTH_SHORT).show(); ed_code.setText(""); } } }); } En passant, le Log.v(); n'affiche rien de les logCat, mais c'est pas vraiment mon problème principal, juste si qqun a une idée. Merci d'avance de votre aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Khrid Posté(e) 20 mai 2011 Share Posté(e) 20 mai 2011 Pour tester des chaînes de caractères on utilise equals en Java Lien vers le commentaire Partager sur d’autres sites More sharing options...
vrnxsz Posté(e) 20 mai 2011 Auteur Share Posté(e) 20 mai 2011 Ah ouais, ca marche. Merci :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Femto Posté(e) 20 mai 2011 Share Posté(e) 20 mai 2011 Grand classique. Juste pour info garde bien en tête que en java String n'est pas vraiment un type de variable mais un objet avec diverses méthodes accessibles Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mc Flurry Posté(e) 25 mai 2011 Share Posté(e) 25 mai 2011 Si tes variables sont de types primitif (int, long, boolean) alors, == compare la valeur contenue. Si tes variables sont des Objets (String, Integer, ... tout type commençant par une majuscule en fait) alors == compare les adresses en mémoire de tes variables et non les valeurs qu'elles contiennent ! Pour comparer les valeurs il faut utiliser la méthode equals. Petite précision, cette méthode est définie dans la classe Object de java et, de par l'héritage, est présente dans chaque classe Java. Pour les classes de l'API, equals a été redéfini afin de donnée le résultat voulu. Si tu as besoins d'utiliser un comparateur d'égalité dans les classes que tu crées, il faut que tu redéfinisses equals. Je ne sais pas si je suis très clair dans ce que je dis mais c'est comme ça que ça fonctionne ;) 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.