0

こんにちは、アプリケーションが parcelable を書き込むときに奇妙なエラーが発生しました。

コードで:

package com.android.edl;
import java.io.IOException;
import org.xmlpull.v1.XmlSerializer;
import com.tools.edl.Tools;


import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Parcel;
import android.os.Parcelable;

public class ElementDescription implements Parcelable  {

private int Id;
private String natureText = "";
private String UsureText = "";
private String FonctionnementText = "";
private String EtatText = "";
private Tools tools = new Tools();
private static String table = "edl_ElementDescription";

public ElementDescription (Parcel in)
{
    Id = in.readInt();
    natureText = in.readString();
    UsureText = in.readString();
    FonctionnementText = in.readString();
    EtatText = in.readString();
}
public ElementDescription ()
{

}
public int update(SQLiteDatabase db)
{
    ContentValues values = new ContentValues();
    values.put("natureText", natureText);
    values.put("usureText", UsureText);
    values.put("fonctionnementText", FonctionnementText);
    values.put("fonctionnement", FonctionnementText);
    values.put("etatText", EtatText);
    this.Id = (int) db.insert(table, null, values);
    return this.Id;
}
public void maj(SQLiteDatabase db)
{
    ContentValues values = new ContentValues();
    values.put("natureText", natureText);
    values.put("usureText", UsureText);
    values.put("fonctionnementText", FonctionnementText);
    values.put("fonctionnement", FonctionnementText);
    values.put("etatText", EtatText);
    db.update(table, values, "id=?", new String[] {String.valueOf(Id)});
}
public void init(SQLiteDatabase db,int id)
{
    Cursor description = db.query(table, new String[]{"natureText","usureText","fonctionnementText","etatText","id"}, "id=?", new String[] {String.valueOf(id)}, null, null, null);
    description.moveToFirst();
    if(description.getCount()>0)
    {
        natureText = tools.isNull(description.getString(0));
        UsureText = tools.isNull(description.getString(1));
        FonctionnementText = tools.isNull(description.getString(2));
        EtatText = tools.isNull(description.getString(3));
        Id = description.getInt(4);
    }
}

public void createXml(XmlSerializer xmlSerializer) throws IllegalArgumentException, IllegalStateException, IOException
{
    xmlSerializer.startTag("", "Description");
        if(!tools.isEmpty(natureText))
        {
            xmlSerializer.startTag("", "NatureText");
            xmlSerializer.text(natureText);
            xmlSerializer.endTag("", "NatureText");
        }
        if(!tools.isEmpty(UsureText))
        {
            xmlSerializer.startTag("", "UsureText");
            xmlSerializer.text(UsureText);
            xmlSerializer.endTag("", "UsureText");
        }
        if(!tools.isEmpty(FonctionnementText))
        {
            xmlSerializer.startTag("", "FonctionnementText");
            xmlSerializer.text(FonctionnementText);
            xmlSerializer.endTag("", "FonctionnementText");
        }
        if(!tools.isEmpty(EtatText))
        {
            xmlSerializer.startTag("", "EtatText");
            xmlSerializer.text(EtatText);
            xmlSerializer.endTag("", "EtatText");
        }
    xmlSerializer.endTag("", "Description");
}
public int getId() {
    return Id;
}
public void setId(int id) {
    Id = id;
}

public String getNatureText() {
    if(natureText==null)
        return "";
    else
        return natureText;
}
public void setNatureText(String natureText) {
    this.natureText = natureText;
}
public String getUsureText() {
        return UsureText;
}
public void setUsureText(String usureText) {
    UsureText = usureText;
}
public String getFonctionnementText() {
    return FonctionnementText;
}
public void setFonctionnementText(String fonctionnementText) {
    FonctionnementText = fonctionnementText;
}
public String getEtatText() {
    return EtatText;
}
public void setEtatText(String etatText) {
    EtatText = etatText;
}
@Override
public void writeToParcel(Parcel out, int flags) {
    out.writeInt(Id);
    out.writeString(natureText);
    out.writeString(UsureText);
    out.writeString(FonctionnementText);
    out.writeString(EtatText);
}

public static final Parcelable.Creator<ElementDescription> CREATOR
= new Parcelable.Creator<ElementDescription>() {

    public ElementDescription createFromParcel(Parcel in) {
        return new ElementDescription(in);
    }

    public ElementDescription[] newArray(int size) {
        return new ElementDescription[size];
        }
};

@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}
}

「out.writeString(EtatText)」の行で

アプリケーションを実行すると、listView の項目をクリックすると 10 分の 1 になります。他のアクティビティに送信するための percelable オブジェクトがエラーを出力する場合:

「トレースファイルを開く際のエラー: そのようなファイルまたはディレクトリはありません!」エラー「デバッガーのローカル 8700 にバインドできません」までの無限ループで

彼があなたにこのエラーに会った人はいますか?

4

1 に答える 1