2014-01-23 4 views
4

У меня есть строка, как String data="apps";XML-строковые ресурсы vs Java Constant Strings?

я знаю загрузки строки в Android двумя способами ..

Первый из них является

так что константа я определил его как

public static final String data="apps"; 

И еще один тип отбрасывает его в файле res/vslues/strings.xml как ..

<string name="data">apps</string> 
<string name="hello_world">Hello world!</string> 

, если я хочу использовать его ..

для первого пути ClassName.data

для второго пути context.getResources().getString(resourceid)

Вопрос:

так что теперь мой вопрос я хочу используйте то же самое String в 30 раз в разных классах. И у меня есть больше переменных. Так будет загружаться быстрее и брать меньшую память в приведенных выше методах.

+1

предпочитают второй. Если вы используете одно и то же во всех действиях и хотите изменить его снова, вам нужно изменить его только один раз в strings.xml. Я не думаю, что в загрузке будет слишком много различий. – Raghunandan

+1

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

+0

строки.xml быстрее, чем константа – DaxeshKhatri

ответ

1

Значения строки XML предназначены для отображения строк, которые могут быть переопределены на основе языка. Таким образом, вы можете ссылаться на значение отображаемого перевода с помощью постоянного ключа.

7

Однако скорость не должна быть проблемой в любом случае. Я бы рекомендовал организовать на основе того, что имеет смысл.

Константы класса

помещайте строки константы, которые будут использоваться внутри, как имена столбцов базы данных или других ключей.

strings.xml

строки Помещенные, которые отображаются для пользователя. Таким образом, вы можете воспользоваться локализацией и т. Д.

В соответствии с требованием вы должны предпочесть второй подход - XML ​​ .

+0

это звучит как самый логичный ответ для меня. благодаря –

1

Вам следует рассмотреть возможность использования XML-строк в качестве способа отображения чего-либо пользователю и изменения его в зависимости от языка.

Тем не менее, public static final String data="apps"; следует использовать для того, чтобы скрыть некоторые не для данных пользователей, таких как БД соединений, журнал сообщений и т.д.