android - StartActivityForResult 不适用于 Kotlin 扩展函数?
问题描述
这是我为启动活动以获取结果而创建的扩展功能,但是活动正在开始,但我没有接到电话onActivityResult
inline fun <reified T : Any> Activity.launchActivity(
requestCode: Int = -1,
noinline init: Intent.() -> Unit = {}
) {
val intent = Intent(this, T::class.java)
intent.init()
startActivityForResult(intent, requestCode)
}
onActivityResult 回调
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Timber.d("onActivityResult".plus(OrderProductFragment::class.java.simpleName))
在 a 中调用扩展Fragment
(context as Activity).launchActivity<CartActivity> (1234) {
putParcelableArrayListExtra(getString(R.string.cart_items_key), cartItems)
}
解决方案
您需要 setResult()
在导航回fragment
或activity
您来自哪里时调用它,即
setResult(Activity.RESULT_OK, intent)
这将onActivityResult()
在您的activity
或fragment
班级中调用
例子
val intent = intent
intent.putExtra("key", "put values if you want")
setResult(Activity.RESULT_OK, intent)
finish()
推荐阅读
- reactjs - 我没想到会遇到 React Hooks esLint 错误
- log4j2 - 将 commons-logging 连接到 slf4j-api
- android - 我正在尝试获取对我的 Firebase 数据库子项的正确引用并在我的 RecyclerView 中设置值,但我遇到了一些问题
- c - 打印各种文件信息
- html - Bootstrap 导航栏折叠按钮尺寸太大
- java - 获取特定键及其值
- java - 有什么体面的方法可以将多维数组转换为 List
- >?
- c# - NPOI SetCellValue 方法无法更新单元格值
- django - django并发bulk_create没有将所有值插入数据库
- charts - 自我更新Excel图表