SimpleXML
Android 用のライブラリを使用すると、これらから HashMap を作成できます。
<items>
<item>
<id>1</id>
<name>chicken</name>
<amount>13</amount>
</item>
<item>
<id>2</id>
<name>potatoes</name>
<amount>3</amount>
</item>
</items>
次のように、id とアイテムを含む HashMap を作成したいと思います。
HashMap<Integer, Item>
ここで、ID はアイテムの ID (値自体) になります。これは可能ですか?
ID、名前、金額を保持する 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
}
しかし、対応するフィールドが見つかりません...
HashMap の代わりに List を使用すると、期待どおりに動作します。Items ラッパー クラスのリスト フィールドへの追加として HashMap が必要なだけです。
何か助けはありますか?