Р. стринг.значение справка android уведомление



В чем дело



 CharSequence contentTitle = R.string.value;


Ошибка не может преобразовать из int в CharSequence. Есть ли способ обойти это, или я что-то упускаю?
я пытался



String s = R.string.value + "";
CharSequence contentTitle = s;


Возвращает целые значения.
Помощь есть?

554   4  

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 ()

Я не знаю, является ли это оптимальным долгосрочным решением, но, похоже, оно работает. на данный момент. Надеюсь, это поможет.

Вы также можете использовать String s = getResources().getString(R.string.value);.

Comments

    Ничего не найдено.