2016-07-09 5 views
0

Mein arrays.xml:Android - Warum die von getResources() zurückgegebene Zeichenfolge. GetStringArray kann nicht in der if-Klausel verwendet werden?

<string-array name="chart_names"> 
     <item>abc</item> 
</string-array> 

Mein Testcode:

String[] chartNames = getActivity().getResources().getStringArray(R.array.chart_names); 

if ("abc" == chartNames[0]) { 
    Log.v("msg", "yes"); 
}else{ 
    Log.v("msg", "no"); 
} 

ich immer falsch bekommen, so dass die Konsole immer "nein" druckt.

Warum ist das passiert? Es ist wirklich seltsam .....

Bitte helfen Sie mir ....... Danke.

+0

omg .... Ihr Vergleich ist inkorrekt – karan

Antwort

1

Die bewährte Methode ist die Verwendung equals() Zeichenfolgen vergleichen oder Gegenstände

Versuchen Sie diesen Code:

String[] chartNames = getActivity().getResources().getStringArray(R.array.chart_names); 

if (chartNames[0].equals("abc")) { 
    Log.v("msg", "yes"); 
}else{ 
    Log.v("msg", "no"); 
} 
1

Verwenden .equals() zwei Strings vergleichen

siehe Docs

1

für Vergleichen Sie zwei Zeichenfolgen, die Sie verwenden können. pareTo() oder .equals() - Funktionen, natürlich mit .equals() -Funktion ist besser.

* .equals():

if ("text1 to compare".equals("text2 to compare")) { 
    Log.v("equal", "yes"); 
}else{ 
    Log.v("equal", "no"); 
} 

* .compareTo()

if(str1.compareTo("str2")==0){ 
Log.v("equal", "yes"); 
} 

Hinweis: "foo" .equals ((String) null) gibt false zurück, während "foo". compareTo ((String) null) == 0 wirft eine NullPointerException

Verwandte Themen