2015-08-10 2 views
1

Я пытаюсь собрать все строки в своем приложении и сохранить их в парах ключ-значение. Мне просто нужно знать, можно ли получить количество строк в файле strings.xml, и если есть способ, пожалуйста, дайте мне знать?количество строк в строках.xml?

в дальнейшем я пытался найти одну строку, но мне нужно все из них:

private String getStringResourceByName(String str) { 
    String packageName = getPackageName(); 
    int resId = getResources().getIdentifier(str, "string", packageName); 
    if (resId == 0) { 
     return str; 
    } else { 
     return getString(resId); 
    } 
} 
+0

'key-value pairs' звучит как SharedPreferences, для меня ... –

+0

точно !! @ FrankN.Stein –

+0

Итак ... не можете ли вы просто использовать обычные SharedPreferences, а не изобретать колесо? –

ответ

5

Ну, вы можете использовать класс Field.

Field[] fields = R.string.class.getFields(); 
int size = fields.length; // If you want the size. 
for (Field field : fields) { 
    String str_key = field.getName(); 
    try { 
     int id = field.getInt(null); 
     String str_value = getString(id); 
     // Store the String, and do whatever you want with it. 

     Log.d("TAG","Key: " + str_key + " value: " + str_value); 
    } catch (IllegalAccessException e) { 
     Log.e("TAG",e.getMessage()); 
     e.printStackTrace(); 
    } 
} 
+0

спасибо ... это было очень полезно :) –

+0

Добро пожаловать! Рад помочь ;) – Mauker

1

Использование XPATH и поймать все <string> теги

Здесь у вас есть tutorial об обучении, как parse xml файлов с Java, и это Oracle Documentation о том, как работает XPATH.

Кстати, если вы хотите использовать пары ключ-значение, посмотрите также SharedPreferences. Может быть полезно для вашей цели.

+0

Я ничего не знаю о XPATH ... но мне нужно сделать это программным способом, как в java. спасибо anyways :) –

+0

Я добавил некоторые документы к ответу, который может быть вам полезен. Поверьте мне, хорошо знать о XPATH, если вам нужно будет работать с файлами XML;) – arodriguezdonaire

+0

aha Спасибо большое :) –

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