Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] variable identiques pas reconnues comme telles

    10 août 2012 à 19:58:59

    Bonjour,

    J'ai un problème avec un code extrêmement simple lors du test d'une égalité...

    question("complexe");
    public void question(final String answer)
    	{
    
    		final EditText b = new EditText(this);
    		if(type == "numeric")
    		{
    			b.setInputType(InputType.TYPE_CLASS_NUMBER);
    		}
    		else if(type == "string")
    		{
    			b.setInputType(InputType.TYPE_CLASS_TEXT);
    		}
    		
    		Button c = new Button(this);
    		c.setText("Ok");
    		c.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    		horizontal.addView(c);
    		
    		c.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                	if((b.getText().toString().equals("")))
                	{
                		new AlertDialog.Builder(LongestGameActivity.this).setMessage(falseMessage).setNeutralButton("J'ai pas envie, il est moche...", new DialogInterface.OnClickListener() { public void onClick(DialogInterface arg0, int arg1) {} }).setCancelable(false).show();
                	}
                	else if(b.getText().toString() != answer)
                	{
                		new AlertDialog.Builder(LongestGameActivity.this).setMessage(b.getText().toString() +" != "+answer).setNeutralButton(falseButton, new DialogInterface.OnClickListener() { public void onClick(DialogInterface arg0, int arg1) {} }).setCancelable(false).show();
                	}
                	else
                	{
                		levelUp();
                	}
                }
            });	
    		
    	}
    


    Le problème provient de la ligne avec "else if(b.getText().toString() != answer)". Quand je lance mon code (donc en exécutant question("complexe");) et que j'écris "complexe" dans le champ texte, puis que je valide, la condition "else if(b.getText().toString() != answer)" est considérée comme valable, alors que answer vaut bien "complexe", et que b.getText().toString() vaut également "complexe".

    Je n'y comprends rien...

    Merci d'avance si qqn a une idée :S
    • Partager sur Facebook
    • Partager sur Twitter
      10 août 2012 à 20:28:01

      Bonjour,

      Utilise la méthode equals(...), comme tu l'utilises plus loin dans ton code, lorsque tu tests l'égalité entre deux chaines de caractères.
      • Partager sur Facebook
      • Partager sur Twitter
      Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
        10 août 2012 à 20:49:30

        Raaaah !!! ><

        Merci beaucoup ! :D
        J'ai vraiment galéré là-dessus... J'aurais jamais pensé que y'avait une différence si on me l'avait pas fait remarquer :S

        *** Ouverture du mode troll ***

        (c'est pour ça que j'aime pas le Java xD)

        ***

        (ne pas tenir compte du mode troll)
        • Partager sur Facebook
        • Partager sur Twitter

        [Android] variable identiques pas reconnues comme telles

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown