2015-10-26 2 views
3

У меня есть xml папку в моей res папке с файлом структурированным, как это:Android локализации строк из XML

<questions> 
     <question 
      number="1" 
      text="my string" 
      numberTwo="1" /> 
     ... 
    </questions/ 

Так что можно не жёстко строки здесь и использовать @string/... ресурсы, потому что я на самом деле нужна локализация здесь?

ответ

2

Вы можете

text="mystring" в файле XML

и <string name"mystring">lalala</string> в вашем strings.xml (возможно, локализованных в других файлах, например, как в папке значения-de.xml)

Тогда в ваш код вы можете сделать:

int stringId = getResources().getIdentifier("mystring", "string"); 
String string = getString(stringId); // that will be "lalala" 

Другим способом иметь свой файл XML полностью локализованный в папке XML-де но это требует некоторого дублирования текста.

+0

Да, это работает. Но не так легко, как я надеялся. –

0

В string.xml -> Лалала в вашем strings.xml - значения-de.xml> папка Затем в коде вы можете сделать в деятельности:

String AppName=getResources().getString(R.string.app_name); 

И в Fragmetn

String AppName=getActivity().getResources().getString(R.string.app_name);