0

我有一个 Spinner,我从 XML 字符串数组中选择一首歌曲(项目),如下所示:

<string-array name="lst1">
    <item name="ALittleLessCoanversation" tag="0">A Little Less Conversation
        <game>Just Dance</game>
        <music>A Little Less Conversation</music>
        <artist>Elvis Presley</artist>
    </item>
    .
    .
    .
</string-array>

我想把它转换成一个音乐对象(new Music(String game, String song, String artist))。

我尝试spnSongList.getSelectedItem()并投射到音乐:

Music music = (Music) spnGameList.getSelectedItem();

我也尝试将其转换为 String 和 String[],但它总是返回错误。

我想要的是获取那个 XML Item 并将其转换为 Music 对象。

感谢那些提供帮助的人。

4

1 回答 1

0

尝试使用'xstream':http://x-stream.github.io/ 是一个不错的库,可以满足您的需求。

您可以创建自己的转换器以两种方式序列化 object <-> xml

http://x-stream.github.io/converters.html

您将必须编写 Converter 类的实现

当你这样做时,你需要做的就是

XStream xstream = new XStream();

xstream.registerConverter(new MusicConverter());

Music music = (Music)xstream.fromXML(xml);

另外我建议您使用构建器模式,以便构建对象看起来像这样:

Music music =    Music.builder().artist("Elvis").title("A Little Less Conversation").build();
于 2012-08-18T14:03:17.657 回答