将Float(不浮动)写入包裹

时间:2014-09-29 19:27:44

标签: android parcel

我想写一个Float,以便我可以将它的值设置为null ...任何想法?

我现在唯一的想法是,如果Float为null,则写入负值,然后通过写入null读取parcel句柄的负值。这会非常烦人,很多if语句(最终目标是编写这个JSON对象,它需要包含Floats而不是浮点数。

谢谢!

编辑:

我目前正在使用这些方法来执行此操作。来自r.get ....()的所有值都返回Floats

private float valueFromFloat(Float f) {
    if (f == null) {
        return -1f;
    } else {
        return f.floatValue();
    }
}

private void writeRoute(Route r) {

    parcel.writeFloat(valueFromFloat(r.getBus()));
    parcel.writeFloat(valueFromFloat(r.getHeavy_rail()));
    parcel.writeFloat(valueFromFloat(r.getWalk()));     
    parcel.writeFloat(valueFromFloat(r.getCar23()));
    parcel.writeFloat(valueFromFloat(r.getLight_rail()));
    parcel.writeFloat(valueFromFloat(r.getCars4()));
    parcel.writeFloat(valueFromFloat(r.getCar()));
    parcel.writeFloat(valueFromFloat(r.getAlternative()));  
    parcel.writeFloat(valueFromFloat(r.getMotorcycle()));
}

1 个答案:

答案 0 :(得分:6)

writeValue适用于Float,Double和其他一些类型

Float x = new Float(3.14);
parcel.writeValue(x);

// later
Float x = parcel.readValue();