Куда поместить XML-файл, содержащий данные, в приложении для Android

#android #resources

#Android #Ресурсы

Вопрос:

Я новичок в разработке Android. У меня есть XML-файл с данными, которые будет считывать приложение. Где я должен хранить этот XML-файл? Должен ли он храниться в папке «value»?

Ответ №1:

Я бы сказал, что это зависит. Что вы сохраняете в своем XML-файле? Также существует res/xml -папка, в которой могут храниться XML-файлы. Но Android делает с XML-файлами практически все, что угодно, поэтому вы, возможно, захотите прочитать мой небольшой туториал о том, куда какие ресурсы поместить.

Кроме того, существует разница между assets и res каталогами:

RES

  • Никакие подкаталоги не разрешены в определенных папках ресурсов.
  • R -класс индексирует все ресурсы и обеспечивает простой доступ.
  • Существует несколько простых методов, которые помогают считывать файлы, хранящиеся в res -каталоге

ресурсы

  • Подкаталоги разрешены (столько, сколько вам нравится).
  • Нет индексации по R -классу
  • Чтение ресурсов, хранящихся в assets , выполняется с помощью AssetManager.

Комментарии:

1. Это правильный ответ. Я предпочитаю не использовать каталог assets, а затем использовать простой XML для синтаксического анализа XML: robertmassaioli.wordpress.com/2011/04/21 /…

2. Спасибо, что объяснили разницу между ними. Это помогает.

3. мне помогла папка res / xml. У меня был XML-файл данных с пользовательскими тегами.

Ответ №2:

Вы можете поместить его в папку res / raw. Затем вы получите к нему доступ с помощью:

 getResources().openRawResource(resourceName)
  

Ответ №3:

У меня было аналогичное требование, и после долгих исследований я нашел 2 решения для размещения пользовательского XML: вы можете разместить пользовательский XML в

  1. res / raw/

  2. res / xml/

Для доступа к этим местоположениям вы будете использовать следующий код :

a. если XML помещен в res / raw, то :

getResources().openRawResource(R.raw.custom-xml) :

Это дает вам простые методы чтения xml :

с помощью приведенного ниже кода я считываю XML в памяти, размещенной в папке raw :


 BufferedReader br = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.custom-xml)));
            
StringBuilder str = new StringBuilder();
String line;
while ( (line = br.readLine()) != null){
    str.append(line);
}
  

2-й вариант :

getResources().getxml(R.xml.custom-xml);

с помощью этого вы могли бы прочитать xml с помощью анализатора на основе событий.

Комментарии:

1. исправление ** getResources().openRawResource(R.xml.custom-xml) Это должно быть getResources().getxml(R.xml.custom-xml)