Код: Выделить всё
if(String.valueOf("Овен").equals(getResources().getString(R.string.aries))){
Log.d(MainActivity.LOG_TAG, "Получилось");
}else {
Log.d(MainActivity.LOG_TAG, "Опять шляпа");
}
Код: Выделить всё
if(String.valueOf("Овен").equals(getResources().getString(R.string.aries))){
Log.d(MainActivity.LOG_TAG, "Получилось");
}else {
Log.d(MainActivity.LOG_TAG, "Опять шляпа");
}
Есть кнопка для выбора зодиаков, при нажатии она вызывает AlertDialog в который я подаю массив строк(ранее полученый из getResources().getStringArray(R.array.all_zodiacs)).klblk писал(а):1) String.valueOf("Овен") => "Овен" => final static String OVEN = "Овен";
2) строку из ресурсов можно тоже получить заранее => String aries = getResources().getString(R.string.aries));
Итого: String.valueOf("Овен").equals(getResources().getString(R.string.aries)) => OVEN.equals(aries)
Хотя непонятно в чем смысл сравнивать одну константу с другой константой.
Мне нужно создать 2 массива. Один String - для того что-бы передать его в Alertdialog, и Integer массив - для сравнения id?Foenix писал(а):Для таких целей и вообще лучше сравнивать айди а не строку
Строку сравнивают когда юзер вводит слово сам, а если выбирает из списка то обязательно по ид
Конечно, я же подаю массив в AlertDialog:doter.ua писал(а):id позиции зодиака соответствует позиции элемента в массиве?
Код: Выделить всё
mImageZodiac.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mZodiacsNames = getResources().getStringArray(R.array.all_zodiacs);
final int[] mIntZodiacNames = {
R.string.aries,
R.string.leo,
R.string.sagittarius,
R.string.taurus,
R.string.virgo,
R.string.capricorn,
R.string.gemini,
R.string.libra,
R.string.aquarius,
R.string.cancer,
R.string.scorpio,
R.string.pisces,
};
AlertDialog.Builder ad = new AlertDialog.Builder(getActivity());
ad.setTitle("Гороскопы");
ad.setItems(mZodiacsNames, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (mIntZodiacNames[which]){
case R.string.aries:
mImageZodiac.setImageResource(R.mipmap.aries);
break;
case R.string.leo:
mImageZodiac.setImageResource(R.mipmap.leo);
break;
case R.string.sagittarius:
mImageZodiac.setImageResource(R.mipmap.sagittarius);
break;
case R.string.taurus:
mImageZodiac.setImageResource(R.mipmap.taurus);
break;
case R.string.virgo:
mImageZodiac.setImageResource(R.mipmap.virgo);
break;
case R.string.capricorn:
mImageZodiac.setImageResource(R.mipmap.capricorn);
break;
case R.string.gemini:
mImageZodiac.setImageResource(R.mipmap.gemini);
break;
case R.string.libra:
mImageZodiac.setImageResource(R.mipmap.libra);
break;
case R.string.aquarius:
mImageZodiac.setImageResource(R.mipmap.aquarius);
break;
case R.string.cancer:
mImageZodiac.setImageResource(R.mipmap.cancer);
break;
case R.string.scorpio:
mImageZodiac.setImageResource(R.mipmap.scorpio);
break;
case R.string.pisces:
mImageZodiac.setImageResource(R.mipmap.pisces);
break;
}
mTitleZodiac.setText(mZodiacsNames[which]);
}
});
ad.create().show();
}
});
Код: Выделить всё
<string name="aries">Овен</string>
<string name="leo">Лев</string>
<string name="sagittarius">Стрелец</string>
<string name="taurus">Телец</string>
<string name="virgo">Дева</string>
<string name="capricorn">Козерог</string>
<string name="gemini">Близнецы</string>
<string name="libra">Весы</string>
<string name="aquarius">Водолей</string>
<string name="cancer">Рак</string>
<string name="scorpio">Скорпион</string>
<string name="pisces">Рыба</string>
<string-array name="all_zodiacs">
<item>@string/aries</item>
<item>@string/leo</item>
<item>@string/sagittarius</item>
<item>@string/taurus</item>
<item>@string/virgo</item>
<item>@string/capricorn</item>
<item>@string/gemini</item>
<item>@string/libra</item>
<item>@string/aquarius</item>
<item>@string/cancer</item>
<item>@string/scorpio</item>
<item>@string/pisces</item>
</string-array>