Как прочитать значение из string.xml в Android? - PullRequest
348 голосов
/ 02 февраля 2010

Я написал строку:

String Mess = R.string.mess_1 ;

, чтобы получить строковое значение, но вместо возврата строки он дает мне идентификатор типа integer. Как я могу получить его строковое значение? Я упомянул строковое значение в файле string.xml.

Ответы [ 17 ]

762 голосов
/ 02 февраля 2010

Попробуйте это

String mess = getResources().getString(R.string.mess_1);

UPDATE

String string = getString(R.string.hello);

Вы можете использовать либо getString(int), либо getText(int), чтобы получить строку. getText(int) сохранит любой форматированный текст, примененный к строке.

Ссылка: https://developer.android.com/guide/topics/resources/string-resource.html

61 голосов
/ 05 декабря 2012

В действии:

this.getString(R.string.resource_name)

Если не в деятельности, но иметь доступ к контексту:

context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
42 голосов
/ 19 ноября 2013

Я использую это:

String URL = Resources.getSystem().getString(R.string.mess_1);
21 голосов
/ 22 июня 2014

Кстати, в strings.xml также можно создавать строковые массивы примерно так:

<string-array name="tabs_names"> 
    <item>My Tab 1</item> 
    <item>My Tab 2</item>
</string-array>

И тогда из вашей Активности вы можете получить ссылку так:

String[] tab_names = getResources().getStringArray(R.array.tab_names);
String tabname1=tab_names[0];//"My Tab 1"
10 голосов
/ 25 июня 2012

Только для будущих ссылок.

В документации о строковых ресурсах написано:

Вы можете использовать getString (int) или getText (int) для извлечения строки. getText (int) будет> сохранять все стили расширенного текста, примененные к строке.

6 голосов
/ 18 июля 2013

Раствор 1

Context context;
String mess = context.getString(R.string.mess_1)

Раствор 2

String mess = getString(R.string.mess_1)
3 голосов
/ 06 сентября 2016

Если вы хотите добавить строковое значение к кнопке, например, просто используйте

android:text="@string/NameOfTheString"

Определенный текст в strings.xml выглядит следующим образом:

 <string name="NameOfTheString">Test string</string>
2 голосов
/ 21 февраля 2015

Перед использованием getResources() в Android необходимо указать имя контекста.

String user=getApplicationContext().getResources().getString(R.string.muser);

OR

Context mcontext=getApplicationContext();

String user=mcontext.getResources().getString(R.string.muser);
2 голосов
/ 03 августа 2015

В фрагментах вы можете использовать

getActivity().getString(R.id.whatever);
1 голос
/ 14 марта 2017

Если вы занимаетесь деятельностью, вы можете использовать

getResources().getString(R.string.whatever_string_youWant);

Если вы не в деятельности используйте это:

getApplicationContext.getResource().getString(R.String.Whatever_String_you_want)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...