android - 阅读 parcelable 在写作时不起作用

标签 android android-intent parcelable

我是 使用 parecable 将数据从一个服务发送到另一个服务,当我写入数据时包含正确的值,但是当从 parcelable 读取数据时它返回空值。

有人能告诉我这段代码有什么问题吗?

可包裹类

package com.airwatch.agent.finddevice;

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


/**
 * Represents the configuration supplied from device services 
 * regarding the  find device command.
 */
public class FindDeviceConfig implements Parcelable{
    public FindDeviceConfig() {
    }

    /**
     * number of loops to play ring-tone.
     */
    private String numberoftime;

    /**
     * Delay between loops - in seconds.
     */
    private String interval;

    public FindDeviceConfig(String numberoftime, String interval) {
        this.numberoftime = numberoftime;
        this.interval = interval;
    }

    public String getNumberoftime() {
        return numberoftime;
    }

    public void setNumberoftime(String numberoftime) {
        this.numberoftime = numberoftime;
    }

    public String getInterval() {
        return interval;
    }

    public void setInterval(String interval) {
        this.interval = interval;
    }

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel dest, int flags) {
        //dest.writeInt(Integer.parseInt(numberoftime));

        //dest.writeInt(Integer.parseInt(interval));
        dest.writeString(this.interval);
        dest.writeString(this.numberoftime);
    }

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

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

    public FindDeviceConfig(Parcel parcel)
    {
        parcel.setDataPosition(0);

        interval=parcel.readString();
        numberoftime=parcel.readString();

    }
}

放置可打包对象。

FindDeviceConfig config=new FindDeviceConfig("3","2");
intent.putExtra("finddevice_config", config);

读取可打包对象。

FindDeviceConfig config = intent.getParcelableExtra("finddevice_config");

有人遇到过这个问题吗?

最佳答案

添加以下构造函数:

public FindDeviceConfig(Parcel data) {
    this.numberoftime  = data.readString();
    this.interval = data.readString();
 } 

关于android - 阅读 parcelable 在写作时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991449/

相关文章:

android - 在 Wireshark 上捕获手机流量

android - FindViewById 在子类中使用时为空

android - imageview 中的进度对话框,直到我从服务器加载图像

java - 如何修复 - 按 Intent 进行的唯一扩展关联不起作用

Android:如何从 TextView 链接本地 HTML 文件

android - Parcelable 类抛出运行时异常解码未知类型

android - Phonegap构建:找不到与com.google.android.gms:play-services-gcm:12+相匹配的任何版本

android - finish() 有时无法正常工作

java - getParcelableArrayList 返回 null

android - Kotlin 使用 Parcelable 将 ListArray 传递给另一个 Activity