Я пытаюсь установить строковые значения для идентификаторов, определенных в xmls. Я определил набор текста, который может быть назначен различным идентификаторам в файлах макета XML. Тем самым я также вижу значения int, связанные с различными текстами в R.java.
Я сохранил имена переменных, которые я дал текстам в моей базе данных вместе с префиксом R.id, как они появляются в файле R.java.
Для настройки текста,
TextView messageone = (TextView)findViewById(R.id.textfield1);
Нормальное использование:
String message = "Hi, hello";
messageone.setText(Status);
Что я хочу реализовать:
- публичная статическая итоговая строка сообщений int присутствует в R.java
- R.id.messagestring хранится в базе данных sqlite в текстовом формате.
messageone.setText (what_here);
- what_here = способ получить значение из строки "R.id.messagestring", полученной из базы данных.
Я знаю public int getIdentifier (String name, String defType, String defPackage)
можно использовать здесь. Единственным изменением будет сохранение текста в базе данных, который изменится с R.id.messagestring
на messagestring
. Но есть примечание, препятствующее реализации этого типа.
В нем говорится: использование этой функции не рекомендуется. Гораздо эффективнее получать ресурсы по идентификатору, чем по имени.
Документы Android getIdentifier
Я думаю, что, хотя этот метод выглядит как более длинная реализация, он может быть эффективен, когда объекты, о которых идет речь, не являются текстом.