2016-07-09 3 views
0

マイarrays.xml:Android - getResources()によって返される文字列はなぜですか?getStringArrayはif節で使用できません。

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

私のテストコード:

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

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

私は常にfalseを取得するので、コンソールは常に "ノー" 出力します。

どうしてですか?本当に奇妙です.....

助けてください.......ありがとうございます。

+0

omg ....あなたの比較は間違っています – karan

答えて

1

ベストプラクティスは、使用が(等しい)で、文字列または任意のオブジェクトに

を比較するには、このコードを試してみてください。

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

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

使用.equals()二つの文字列

を比較するためDocs

1

を参照してください。あなたが.compareTo()または.equals()関数を使用することができる2つの文字列を比較します。もちろん、。equals()関数を使用する方が優れています。

* .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"); 
} 

注: "foo" という.equals((String)をヌル) "foo" というながら、falseを返します。 compareTo((String)null)== 0はNullPointerExceptionをスローします

関連する問題