0

次のような 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>

そして、それを Music オブジェクト ( ) に変換したいと考えていますnew Music(String game, String song, String artist)

私はspnSongList.getSelectedItem()音楽にキャストしてみました:

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

また、String と String[] に変換しようとしましたが、常にエラーが返されます。

私が望むのは、その XML アイテムを取得して、それを Music オブジェクトに変換することです。

助けてくれてありがとう。

4

1 に答える 1

0

「xstream」を使用してみてください: http://x-stream.github.io/ 必要なことを正確に実行する、適切でまともなライブラリです。

オブジェクト <-> xml の 2 つの方法でシリアル化する独自のコンバーターを作成できます。

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 に答える