繁体   English   中英

将可空值从 Activity 传递到 Fragment

[英]Passing Nullable Values from Activity to Fragment

Strings从活动传递到片段时使用

Bundle args = new Bundle();
args.putString(key, value);
fragment.setArguments(args);

我还可以传递潜在的null并在片段中接收它

String string = getArguments().getString(key);

我倒是也想通过为空的Float S和Integer秒,但相应的putInt()putFloat()方法不允许传球null 我现在正在传递额外的标志作为参数,指示是否设置了一个值,但相比之下,这似乎相当笨拙。 有没有更好的方法来传递潜在的空值(最好在 API 级别 14 及更高版本中可用)?

我更喜欢跳过将为null情况放入捆绑包中的操作。
在片段中,只需检查Bundle.containsKey(String key) ,如果不意味着null

这是@Eugene Krivenjas 文本解决方案的 Kotlin 版本 - 以防万一有人更喜欢复制/粘贴而不是思考;)

private fun Bundle.putLongOrSkip(key: String?, value: Long?) =
    apply { value?.let { putLong(key, value) } }

private fun Bundle.getLongOrNull(key: String?) = 
    if (containsKey(key)) getLong(key) else null

Ofc 这对于floatsints也是可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM