Р. стринг.значение справка android уведомление
В чем дело
CharSequence contentTitle = R.string.value;
Ошибка не может преобразовать из int в CharSequence. Есть ли способ обойти это, или я что-то упускаю?
я пытался
String s = R.string.value + "";
CharSequence contentTitle = s;
Возвращает целые значения.
Помощь есть?
4 ответов:
R.string.valueэто вызов статического поля в классе R, которое автоматически генерируется Eclipse и которое делает своего рода сводку всех ваших ресурсов. Чтобы получить строку, необходимо использовать :CharSequence contentTitle = getString(R.string.value);Если вы откроете класс R, то увидите, что он содержит только числа, являющиеся ссылками на скомпилированные ресурсы вашего проекта.
Чтобы получить строку, вам нужно использовать getString (),
Но getString () - это метод из класса Context. Если вы хотите использовать этот метод вне класса Activity, сначала вы должны получить ссылку на свой контекст, а затем вызвать:
String s = mContext.getString(R.string.somestring)
R. строка.value возвращает идентификационный номер ссылки на ресурс value. Если вы посмотрите на свой класс R, он будет выглядеть примерно так:
public static final class string { public static final int value=0x7f040007; }У меня возникли проблемы со ссылками на метод getString (). Точная ошибка, которую Eclipse плюет в меня:
Метод getString (int) не определен для типа DatabaseHelper.MainDatabaseHelper
Прочитав некоторое время, я понял, что вы должны ссылаться на контекст вашего приложения чтобы получить доступ к методу getString (). Я пытался создать частный вспомогательный класс SQLDatabase в поставщике контента, однако это не позволяло мне ссылаться на метод getString (). Мое решение до сих пор состоит в том, чтобы сделать что-то вроде этого:
Обратите внимание на эти две контекстные ссылки:private class MainDatabaseHelper extends SQLiteOpenHelper { MainDatabaseHelper(Context context) { super(context, context.getString(R.string.createRoutesTable), null, 1); } public void onCreate(SQLiteDatabase db) { db.execSQL((getContext()).getString(R.string.createRoutesTable)); } }Контекст .getString ()
(getContext ()) .getString ()
Я не знаю, является ли это оптимальным долгосрочным решением, но, похоже, оно работает. на данный момент. Надеюсь, это поможет.
Comments