有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android Parcelable类内部类不能有静态声明

我一直在尝试创建一个Android Parcelable对象,但一直遇到错误“内部类不能有静态声明”。作为参考,我一直在看位于here的官方Android教程

我目前的代码如下:

public class AppDetail implements Parcelable {
    CharSequence label;
    CharSequence name;
    Drawable icon;

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeArray(new Object[] { this.label, this.name, this.icon });
    }

    public static final Parcelable.Creator<AppDetail> CREATOR
            = new Parcelable.Creator<AppDetail>() {
        public AppDetail createFromParcel(Parcel in) {
            return new AppDetail(in);
        }

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

    public AppDetail() {}

    public AppDetail(Parcel in) {
        Object[] data = in.readArray(AppDetail.class.getClassLoader());

        this.label = (String)data[0];
        this.name = (String)data[1];
        this.icon = (Drawable)data[2];
    }
}

我在网上找到了另一个遇到类似问题的人,并得出结论,编译器不喜欢静态初始值设定项块(而不是静态类本身)——我尝试遵循这个建议,并这样声明:public static Parcelable.Creator<AppDetail> CREATOR并在其他地方初始化——但我得到了相同的错误

我怎样才能得到这个/一些可以编译的东西


共 (0) 个答案