#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, которая может решить это автоматически.