Eclipse/Java - Значения в R.string.* возвратите интервал?

Я думал, что буду классным и использовать файл string.xml для определения некоторых постоянных строк для вещей как сообщения об исключениях. В strings.xml я совершил нападки, Добавляют, выбрал опцию "String" (не 'Массив строк'), затем дал ему имя и значение. Я был удивлен видеть, что этот код не работает:

throw new Exception(R.string.MyExceptionMessage);

И это перестало работать потому что R.string. MyExceptionMessage имеет на самом деле интервал типа. Я могу проверить что тип путем взгляда в R.java. Что я пропускаю?

63
задан Christopher Orr 31 December 2009 в 01:50
поделиться

1 ответ

Все в классе R является ссылкой, поэтому он просто определен как int.

Если ваш код запущен внутри - или имеет доступ к - Android Context, вы можете вызвать context.getString(R.string. my_exception_message), чтобы получить фактическое значение String.

Или, для таких вещей, как строки исключений, которые не требуют перевода и поэтому, строго говоря, не нуждаются в определении в .xml файле ресурса Android, вы можете хранить эти строки в виде констант в каком-нибудь StringConstants интерфейсе. Таким образом, вы можете обратиться к строкам внутри классов утилит, которые могут не иметь доступа к Context.

.
115
ответ дан 24 November 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: