Я знаю, как создать простой массив в xml, как это
<resources>
<string-array name="countries_array">
<item>Afghanistan</item>
<item>Albania</item>
<item>Algeria</item>
<item>American Samoa</item>
<item>Andorra</item>
<item>Angola</item>
<item>Anguilla</item>
<item>Antarctica</item>
</string-array>
</resources>
И затем я инициализирую его так, как в коде
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries_array);
textView.setAdapter(adapter);
Но я хочу хранить больше элементов, чем просто строку, поэтому мне нужен способ хранения arraylist, а не простой массив.
Как ниже
<resources>
<Share>
<name>Apple</name>
<currentRate>5.69</currentRate>
<changeToday>-0.11</changeToday>
<changeTodayPercent>-0.02</changeTodayPercent>
<timeUpdated>2012,12,06,18,00,00</timeUpdated>
<Share>
<Share>
<name>Microsoft</name>
<currentRate>5.88</currentRate>
<changeToday>0.19</changeToday>
<changeTodayPercent>+0.09</changeTodayPercent>
<timeUpdated>2012,12,06,18,00,00</timeUpdated>
<share>
...
</resources>
У меня уже есть класс с именем Share.java со следующими переменными, которые необходимо установить с помощью setMethods
открытый класс ShareHolding {
private String name;
private double currentRate;
private double changeToday;
private double changeTodayPercent;
private GregorianCalendar timeUpdated;
}
и добавить их в arraylist
ArrayList<Share> allShares = new ArrayList<Share>();
allShares.getShare(0).setName("I want to access my xml file here and add the first shares name here");
Насколько я знаю, вы не сможете не соответствовать типам данных, используя файл ресурсов. Ресурс поддерживает только однонаправленные типы данных. например, массив строк, массив целых чисел и т.д.
Лучшее решение, которое будет работать, состоит в том, чтобы сделать XML файл Share в его собственный файл и проанализировать его в свой общий объект. У разработчика Android есть пример встроенного синтаксического анализатора xml