相关疑难解决方法(0)

Android:Parcelable和Serializable之间的区别?

为什么Android提供了2个用于序列化对象的接口?Serializable对象是否与Android Binder和AIDL文件进行交互?

android serializable parcelable

289
推荐指数
9
解决办法
15万
查看次数

如何使用Parcel.readBooleanArray()?

我正在尝试使用android.os.Parcel中的readBooleanArray,但readBooleanArray返回void,因此我不清楚如何使用此方法.

我正在使用以下方法向包裹写入内容:

public void writeToParcel(Parcel out, int flags) {
    out.writeBooleanArray(new boolean[] {value});
}
Run Code Online (Sandbox Code Playgroud)

如何在Parcelable构造函数中获取此值?

android parcel parcelable

6
推荐指数
1
解决办法
4699
查看次数

当我使用parcelable接口读/写布尔值时,会发生Nullobject Reference,为什么?

我正在尝试创建一个Parcelable对象,以便传递给一个活动,我开始编写实现Parcelable的Userclass.

Userare的一个属性是boolean,所以我通过引用答案来做到这一点.在实现Parcelable 接口时如何读取/写入布尔值?

但是出现了错误,我得到了一个空引用错误.它说:

java.lang.NullPointerException:尝试在空对象引用上调用虚方法'boolean java.lang.Boolean.booleanValue()'.

代码如下.

public class User implements Parcelable{
    private String userName;
    private String passWord;
    private Boolean oldUser;

    public String getUserName() {
        return userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public Boolean getOldUser() {
        return oldUser;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public void setOldUser(Boolean oldUser) {
        this.oldUser = oldUser;
    }

    @Override
    public int describeContents() {
        return 0; …
Run Code Online (Sandbox Code Playgroud)

java android

3
推荐指数
1
解决办法
5066
查看次数

readBooleanArray抛出RuntimeException(“坏的数组长度”)

我知道可包裹物是隐藏的秘密,但现在我不认为我需要了解它们。

这是我之前的代码:

...
parcel.writeBooleanArray(new boolean[]{booleanValue1, booleanValue2, booleanValue3});
....

boolean[] booleans = new boolean[3];
in.readBooleanArray(booleans);
...
Run Code Online (Sandbox Code Playgroud)

不知何故,它无法在除我之外的许多设备上工作,所以我无法重现它。然后我决定将其更改为:

        ...
    parcel.writeBooleanArray(new boolean[]{booleanValue1});
    parcel.writeBooleanArray(new boolean[]{booleanValue2});
    parcel.writeBooleanArray(new boolean[]{booleanValue3});
        ...

    boolean[] booleans1 = new boolean[1];
    boolean[] booleans2 = new boolean[1];
    boolean[] booleans3 = new boolean[1];
    in.readBooleanArray(booleans1);
    in.readBooleanArray(booleans2); // it crashes here
    in.readBooleanArray(booleans3);
        ....
Run Code Online (Sandbox Code Playgroud)

包裹的源代码:

public final void readBooleanArray(boolean[] val) {
    int N = readInt();
    if (N == val.length) {
        for (int i=0; i<N; i++) {
            val[i] = readInt() != 0;
        }
    } else {
        throw new …
Run Code Online (Sandbox Code Playgroud)

android boolean parcelable runtimeexception

1
推荐指数
1
解决办法
3250
查看次数