gpt4 book ai didi

android - 如何替换 Android 中不推荐使用的 Bundle/Argument get(key) 调用

转载 作者:行者123 更新时间:2023-12-05 04:26:34 24 4
gpt4 key购买 nike

我有以下扩展函数,允许我在我的应用程序 Activity 和 fragment 之间传递 bundle 数据项。

inline fun <reified T : Any> Activity.extra(key: String, default: T? = null): Lazy<T?> = lazy {
val value: Any? = intent?.extras?.get(key)
if (value is T) value else default
}

inline fun <reified T : Any> Activity.extraNotNull(key: String, default: T? = null): Lazy<T> = lazy {
val value: Any? = intent?.extras?.get(key)
requireNotNull(if (value is T) value else default) { MISSING_MANDATORY_KEY + key }
}

inline fun <reified T : Any> Fragment.extra(key: String, default: T? = null): Lazy<T?> = lazy {
val value: Any? = arguments?.get(key)
if (value is T) value else default
}

inline fun <reified T : Any> Fragment.extraNotNull(key: String, default: T? = null): Lazy<T> = lazy {
val value: Any? = arguments?.get(key)
requireNotNull(if (value is T) value else default) { MISSING_MANDATORY_KEY + key }
}

.get(key) 方法现在都已弃用,我看不出如何替换它们。

看起来我现在需要根据传递的数据类型进行特定的 .getXxxx() 调用。

我有什么选择?

我喜欢这些扩展功能允许我使用这样的一个衬里:-

private val bookId by extraNotNull<Long>(EXTRA_KEY_MY_ID)

private val initialItemContentId by extraNotNull<String>(EXTRA_KEY_CONTENT_ID)
private val initialFilePath by extraNotNull<String>(EXTRA_KEYFILE_PATH)
private val initialMinPageNumber by extraNotNull<Int>(EXTRA_KEY_MIN_PAGE_NUMBER)

最佳答案

 override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
url = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}

}

关于android - 如何替换 Android 中不推荐使用的 Bundle/Argument get(key) 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73034504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com