2015-06-11 5 views
2

У меня есть файл ресурсов с именем suggestions.xml, который переведен на несколько языков. Эти файлы XML содержат только значения <string>.Получите все строковые ресурсы из файла ресурсов XML?

Теперь я хотел бы получить все строки в файле текущей локали. Как мне это сделать? Я знаю, что могу получить одиночные строки по их идентификаторам, но я бы хотел получить все строки в XML-файле.

+0

Можете ли вы, пожалуйста, обновить, если мое решение сработало для вас или нет? –

+0

привет, неужели вы сказали, если вам удалось это сделать и как это сделать? –

ответ

1

Вы можете объявить свои строки следующим образом.

<string-array name="fruitcategory_array"> 

    <item>Apple</item> 
    <item>Bananas</item> 
    <item>Mangoes</item> 
    <item>Grapes</item> 
    <item>Other</item> 

</string-array> 

В вашем классе активности вы можете получить к ним доступ, как показано ниже.

String[] categories; 

categories=getResources().getStringArray(R.array.fruitcategory_array); 

Просто хранить Local Струны в Array в файле suggestions.xml.

+1

Отличается ли это решение с локализацией? Являются ли 'item' в том же порядке во всех локалях? – manabreak

+1

Я не уверен в локализации, но вы можете попробовать. –

3

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

Field[] fields = R.string.class.getFields(); 
String[] stringNames = new String[fields.length]; 
for (int i = 0; i < fields.length; i++) {   
    stringNames[i] = fields[i].getName(); 
} 
+0

Я не думаю, что это сработает. Не включает ли это все строковые ресурсы, а не только те, что содержатся в 'comments.xml'? – manabreak

+0

Извините, мой плохой, до сих пор не проснулся, очевидно :) Вы правы - это перечислит вам все строки, а не только те, которые содержатся в вашем файле предложений. Можете ли вы префикс строки в этом файле с некоторым префиксом, а затем искать его в списке всех строк? – Vesko

+1

Префиксы - это возможность, да. Он чувствует себя немного избыточным, хотя, если все ресурсы, которые я хочу, хранятся в одном файле. Я попробую, если ничего не придет. – manabreak

Смежные вопросы