0

これが「null」を返すのはなぜですか? 「Beedrill & Bug」が返されるはずです...

Data.java:

package com.example.pokemon;

import java.io.Serializable;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

@Root(name="Data", strict=false)
public class Data implements Serializable {

    public Data() {}

    @Element(name = "nm", required=false)
    private String nm;

    public String gtNm(){
        return nm;
    }
    @Element(name = "tp", required=false)
    private String tp;

    public String gtTp(){
        return tp;
    }
}

データ.xml:

<?xml version = "1.0" encoding = "utf-8" ?>

<Data>

    <Pokemon> 
        <nm>Beedrill</nm> 
        <tp>bug</tp> 
        <ablt>swarm</ablt>
        <wkns>fire</wkns>
        <img>beedrill</img>
    </Pokemon> 


</Data>

MainActivity.java:

    try {
        Serializer serializer = new Persister();
        AssetManager assetManager = getAssets();
        InputStream inputStream = assetManager.open("data.xml");
        Data d = serializer.read(Data.class, inputStream);
        System.out.println("[JOE]: It worked! "+d.gtNm());
        System.out.println("[JOE]: It worked! "+d.gtTp());
    } 
    catch (Exception e) {
        e.printStackTrace();
        System.out.println("[JOE]: error! "+e.getMessage());
    }

LogCat:

[JOE]: It worked! null
[JOE]: It worked! null
4

1 に答える 1

2

あなたのxmlツリーは...

<Data>
    <Pokemon> 
        <nm>Beedrill</nm> 

これは、ポケモンがデータの要素であり、Nm がポケモンの属性であるため、データに次のものが必要であることを意味します。

   @Element
   private Pokemon pokemon;

次に、データで指定した属性を持つ Pokemon というクラスを作成する必要があります。このようにして、次のことができます。d.getPokemon().gtNm();

ここの「ネストされたオブジェクトのシリアル化」の例に従ってください

于 2013-10-22T15:12:51.380 に答える