android - 将 Float(不是 float)写入包裹

标签 android parcel

我想写一个 Float 以便我可以将它的值设置为 null...有什么想法吗?

我现在唯一的想法是,如果 Float 为 null,则写入负值,然后在读取包裹时通过写入 null 来处理负值。这会很烦人,很多 if 语句(最终目标是编写这个 JSON 对象,它需要包含 float 而不是 float 。

谢谢!

编辑:

我目前正在使用这些方法来执行此操作。 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()));
}

最佳答案

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

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

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

关于android - 将 Float(不是 float)写入包裹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107378/

相关文章:

Android Parcelable Parcel HashMap

java - 如何使具有多个整数和字符串的类可解析?

android - java.lang.RuntimeException : Parcel: unable to marshal value com. package.NutritionInfo@84055e1

java - Android图库速度很慢

android - 是什么让 singleTask Activity 有 2 个实例?

android - 将自定义可打包对象额外或在 ArrayList 中传递给 RemoteViewsService 会中断 appwidget

typescript - 如何修复 `Class constructor LitElement cannot be invoked without ' new'`?

android - 为 PullToRefreshListView 添加标题 View

android - 检查我在 x 时间段后没有收到 GPS 信号

android - Uncaught ReferenceError : AFMA_getSdkConstants is not defined