1

私は Android アプリに取り組んでおり、Parcelable を使用して情報を渡そうとしています。だからここに私が持っているものがあります。

import android.os.Parcel;
import android.os.Parcelable;

abstract class Role implements Parcelable {

    private String name;
    private String image;

    public Role() {

    }

    public Role(Parcel read) {
        name = read.readString();
        image = read.readString();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String toString() {
        return this.name;
    }

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

                public Role createFromParcel(Parcel source) {
                    return new Role(source);
                }

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

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

    public void writeToParcel(Parcel dest, int flags) {
        // TODO Auto-generated method stub
        dest.writeString(name);
        dest.writeString(image);
    }

}

ただし、コンパイルしようとするとエラーが発生します(コメントを配置した場所)

タイプ ロールをインスタンス化できません

これについて何か考えはありますか?

よろしくお願いします

4

3 に答える 3

1

私自身、抽象クラスで parcelable を使用したことはありませんが、問題ないはずです。ここで確認するか、より一般的にここで確認することをお勧めします

私は非常によく似たクラス (2 つの文字列) を持っていますが、それは public static クラスです。コンストラクターで文字列メンバーに対して new() を実行します。

于 2012-09-16T14:47:47.080 に答える
1

Yout クラスRoleは として定義されてabstractいます。抽象クラスはインスタンス化できません。

クラスの役割を定義するだけです:

class Role implements Parcelable {
    //...
}
于 2012-11-21T17:14:03.423 に答える