Установите значения для текстового идентификатора по имени переменной. Альтернатива getIdentifier - PullRequest
1 голос
/ 06 ноября 2011

Я пытаюсь установить строковые значения для идентификаторов, определенных в 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

Я думаю, что, хотя этот метод выглядит как более длинная реализация, он может быть эффективен, когда объекты, о которых идет речь, не являются текстом.

1 Ответ

0 голосов
/ 07 ноября 2011

Есть метод getString (int Id), который вы можете использовать внутри Activity.Он вернет строку из заданного идентификатора R.string.

String что-то = getString (R.string.something);

Надеюсь, я немного помог вам, потому чтоне совсем уверен, что понимаю ваш вопрос.

...