2013-05-14 6 views
0

Использование SimpleXML Библиотека для Android является возможность создать HashMap из них:Пример XML HashMap для SimpleXML

<items> 
    <item> 
     <id>1</id> 
     <name>chicken</name> 
     <amount>13</amount> 
    </item> 
    <item> 
     <id>2</id> 
     <name>potatoes</name> 
     <amount>3</amount> 
    </item> 
</items> 

Я хочу создать HashMap, который будет содержать идентификатор и позицию, как это:

HashMap<Integer, Item> 

где идентификатор будет идентификатором элемента (самого значения). Это возможно?

Я попытался создания класса Item, который держит идентификатор, имя и сумму:

class Item { 
@Element(name=id) 
public int id; 

@Element(name="name") 
public String name; 

@Element(name="amount") 
public int amount; 

}

, а затем создали оболочку, как

class Items { 

@ElementMap(@field="item", keyType=Integer.class, valueType=Item.class) 
private Map<Integer, Item> mItems = new HashMap<Integer, Item>(); 

// .. getters/setters 

}

Но он не находит соответствующие поля ...

Когда я использую List вместо HashMap - он работает так, как ожидалось. Мне просто нужен HashMap как дополнение к полю списка в классе оберток Items.

Любая помощь?

+1

О да, он даже не выглядит так, как вы пробовали .. – Supericy

+0

добавлены подробности ... теперь вы можете помочь? – user584513

ответ

0

Это может быть что-то, что может помочь вам в этом:

How to serialize a Map<String, String> using Simple XML?
и
http://old.nabble.com/Serializing-collections-with-both-SimpleXML-annotated-and-not-annotated-types-td19679788.html

Он прямо не указывает на целое число, строка HashMap, но он будет показывать идею.

+0

не помогает :(см. Редактировать, я сделал с примером кода ... – user584513

+0

Небольшая деталь, только слепая догадка, но: @ElementMap (@ field = "item", keyType = Integer.class, valueType = Item.class) Когда вы видите @field = "item". Разве это не соответствует классу (Capital I)? Далее, у меня нет идеи, что бы решить эту проблему. – Skillcoil

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