簡體   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