2016-07-13 1 views
-1

Je veux comparer mon résultat (chaîne) et j'utilise le code suivant pour le vérifier.String.equal() Fonction ne fonctionne pas avec la valeur de `R.string`

result = "password"; 
if (result.equals(R.string.myResponse)) { 
    //do something 
} 

fichier R.string

<string name="myResponse">password</string> 

Au-dessus de la fonction ne fonctionne pas et ne pénètre pas dans if partie. Cependant, si je remplace R.string.myResponse par sa valeur réelle par if(result.equals("password")) alors cela fonctionne bien.

Quel est le problème en utilisant la valeur de chaîne de R.string

+2

Avez-vous essayé d'utiliser un débogueur? – Jens

+2

try 'if (result.equals (getString (R.string.myResponse)))' – daco

+2

'R.string.myResponse' retournera et entier à vous. – SripadRaj

Répondre

9

R.string.myResponse est pas une chaîne est un ID pour une chaîne.

Vous devez obtenir la chaîne en utilisant ID.

Quelque chose comme context.getString(R.string.myResponse) ou si vous êtes dans une activité ou un fragment alors juste getString(R.string.myResponse).

1

Remplacer

R.string.myResponse 

avec

getResources().getString(R.string.myResponse); 
0

R.string.myResponse retourne une valeur entière qui est l'ID de la ressource de chaîne particulière. Vous pouvez utiliser getString(R.string.myResponse) pour obtenir la chaîne stockée pour cet ID. Pour être du bon côté, utilisez getResources().getString(R.string.myResponse) comme getString() parfois retourner null.