Я использую Resources.getIdentifier для динамической загрузки строковых ресурсов;потому что мне динамически передается строка, которую нужно перевести из моих файлов ресурсов.Возвращает 0, когда ресурс не существует;так что я справлюсь с этим.Однако, когда я передаю строку, которая является числовой;хотя это не определено в моих ресурсах, оно возвращает число, которое я передал вместо 0. Это вызывает сбой при попытке получить этот ресурс.
int identifier = context.getResources().getIdentifier(myText, "string", "com.farragut.android.emsspeak");
if (identifier > 0) {
text2.setVisibility(View.VISIBLE);
text2.setText(context.getResources().getString(identifier));
} else {
text2.setVisibility(View.GONE);
}
Это определенное поведение??Я не могу себе представить, почему он работает нормально, когда myText равен «BLAH», но тогда, когда myText равен «12», он отличается.Единственное, о чем я могу подумать, это сначала проверить, является ли myText числовым;хотя единственный способ найти это - попытаться разобрать его как целое число и перехватить исключение numberFormatException.Это лучшее решение?