1

Simple Xml Serialization(http://simple.sourceforge.net/home.php)を使用して、アプリケーションでオブジェクトをシリアル化しようとしています。個人クラスをシリアル化しようとしていますが、デバイスで実行すると、作成したxmlファイルが見つかりません。以下の私のコードを参照してください:

人物クラス:

public class Person {

    public Person() {
    }

    public Person(String inFirstName, String inLastName) {
        SetFirstname(inFirstName);
        SetLastname(inLastName);
    }

    private String FirstName;

    public String GetFirstName() {
        return FirstName;
    }

    public void SetFirstname(String inFirstName) {
        FirstName = inFirstName;
    }

    private String LastName;

    public String GetLastName() {
        return LastName;
    }

    public void SetLastname(String inLastName) {
        LastName = inLastName;
    }

    @Override
    public boolean equals(Object inObject) {
        if (inObject instanceof Person) {
            Person inPerson = (Person) inObject;
            return this.FirstName.equalsIgnoreCase(inPerson.FirstName)
                    && this.LastName.equalsIgnoreCase(inPerson.LastName);
        }
        return false;
    }
}

主な活動:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Person person1 = new Person("billy", "boontay");

        File xmlFile = new File(getFilesDir().getPath() + "/Person.xml");

        try {

            Serializer serializer = new Persister();

            serializer.write(person1, xmlFile);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

誰かが私がどこで間違っているのか見ることができますか?そして、誰かがそれを提案する前に、私はすでにマニフェストに外部ストレージへの書き込み権限を追加しました。

4

1 に答える 1

1
File xmlFile = new File(getFilesDir().getPath() + "/Person.xml");

私が覚えているように、メソッドgetFilrsDir()はアプリフォルダーパスを返します。これはデータ/データフォルダーにあり、デバイスをルート化した場合にのみ見つけることができます。これを
試してください。

File xmlFile = new File(Environment.getExternalStorageDirectory().getPath() +  "/Person.xml");

また、Personクラスにいくつかの注釈が必要な場合もあります。

@root (name = "person") <br>
public class Person {

    @Element (entry = "firstname")
    private String FirstName;
    @Element (entry = "lastname")
    private String LastName;

}

この助けを願っています。

于 2013-02-13T18:17:41.737 に答える