Строка из res/values/strings.xml не отображается для использования в моем коде

#android #string #resources

#Android #строка #Ресурсы

Вопрос:

Я пытаюсь сохранить сценарий создания базы данных (довольно длинный) в strings.xml файл (новичок здесь, еще не придумал лучшего места для его размещения) он отображается в сгенерированном классе R:

 public static final class string {
        public static final int app_name=0x7f040001;
        public static final int create_database=0x7f040002; //this one here
        public static final int hello=0x7f040000;
    }
  

но когда я пытаюсь это сделать в коде:

 DATABASE_CREATE = R.string.create_database;
  

‘create_database’ недоступен. Ti просто не существует, я получаю сообщение об ошибке, если пытаюсь его использовать. Есть идеи, почему это так? Есть ли у этих строк ограничения по длине? Могут ли они состоять только из одной строки?
Если это так, как правильно разместить мой сценарий создания SQL?
Спасибо за ваши ответы.

Комментарии:

1. Можем ли мы предположить app_name , и hello оба работают?

2. Вы используете Eclipse? Вы пробовали очистку?

Ответ №1:

R.string.create_database в сгенерированном R — целое число (см. Вашу строку с комментарием). Чтобы получить строковое значение, вам нужно вызвать getString(R.string.create_database) . Смотрите getString(int)

Комментарии:

1. Хорошо, я пробовал это. Прежде всего, как я уже сказал, в ‘R.string’ нет ‘create_database’. Ее просто НЕТ. Во-вторых, для какого объекта я должен вызывать метод getString?

2. ‘create_database’, отсутствующая там, только что была решена, каким-то образом IDE импортировала Android.R, и поэтому мой код не нашел моего собственного R. Все еще пытаюсь выяснить, как выжать из него строковое значение, lol.

3. context.getString(R.string.create_database); аллилуйя 🙂

4. Извините, возможно, я пропустил эту часть после вашей DATABASE_CREATE строки. Да, импорт имеет смысл, и это иногда случается… Если вы используете Eclipse, Ctrl / CMD Щелкните переменную ( create_database ), и она приведет вас к значению в R.string , тогда ваш импорт, вероятно, неверен. Кроме того, Ctrl / CMD Shift O — это «Организация импорта» в Eclipse, которая может решить это автоматически.