Je crée une application de questions Android. Je ne trouve pas la bonne réponse. Liste de réponses.

Bonne réponse: String answer = quizList.get (position) .getAnswer ();

Cliquez sur le bouton :

    buttonA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {



            if (answer =="A"){

                lblsignboard.setText("Ok");

            }
            else
            {

                lblsignboard.setText("No");


            }
        }
    });

Answer = "A", mais ce code ne fonctionne pas. Donne toujours la réponse est non.

-1
Deniz 28 janv. 2016 à 04:17

5 réponses

Meilleure réponse

Vous pouvez également utiliser cette méthode pour que votre code fonctionne même si la clé de réponse est d'un cas différent. Utilisez equals("A") ou equalsIgnoreCase("a").

 buttonA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (answer.equals("A") || equalsIgnoreCase("a")){
                lblsignboard.setText("Ok");
            }else{
                lblsignboard.setText("No");
            }
        }
    });
2
iSandeep 28 janv. 2016 à 02:51

La chaîne peut comparer est .equals ou .eqalignorecase pas un signe '=='. '==' en utilisant une valeur int compare.

String answer=item.get(position).getAnswer();
    if(answer!=null && (answer.equals("A")||equalsIgnoreCase("a")){
            Log.e("Comapare","----------Success"); 
    }else{
        Log.e("Comapare","----------not compare");
    }
0
Pradip 28 déc. 2018 à 11:52

Les chaînes ne peuvent être comparées que par la méthode .equals et non par ==. Vous devez également vérifier que la chaîne est nulle ou non, car la méthode .equals peut appeler nullpointerexception et votre application peut se bloquer.

    buttonA.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      if(answer!=null &&(answer.equals("A")||equalsIgnoreCase("a"))) {
            lblsignboard.setText("Ok");
      } else {
            lblsignboard.setText("No");
      }
    }
});
1
pooja majoka 20 janv. 2018 à 08:03

Sous Android, nous utilisons deux choses pour comparer des chaînes: 1. est égal à: ceci est utilisé lorsque vous souhaitez comparer la casse paire de la chaîne. 2. equalsIgnoreCase: Ceci est juste pour la comparaison de contenu. Voici la petite illustration de son fonctionnement:

   String myString = "heLLo";

    if(myString.equals("hello"))
    {
     System.out.print("equals");
    }
    else if(myString.equalsIgnoreCase("hello"))
    {
        System.out.print("equalsIgnoreCase"); 
    }

Ici, equalsIgnoreCase sera imprimé.

1
user6868942user6868942 24 sept. 2016 à 12:29

Lorsque vous comparez des chaînes en java, utilisez toujours .equals

Étant donné que la fonction (.equals) vérifie le contenu réel de la chaîne, l'opérateur == vérifie si les références aux objets sont égales.

Et maintenant furthur en utilisant equalsignorecase vous n'avez pas à vous soucier de la chaîne de recherche est en majuscules ou en petit.

buttonA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (equalsIgnoreCase("a")){
                lblsignboard.setText("Ok");
            }else{
                lblsignboard.setText("No");
            }
        }
    });
3
Vivek 12 janv. 2017 à 06:48