这可能是一个愚蠢的问题,但我刚刚开始编程并且已经遇到了这个折旧问题。我有一个带有 Recycler View 适配器的活动,并使用了几个请求代码将带有 Intent 的数据从适配器发送到活动。
例如:
在回收站视图中:
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "*/*"}
activity.startActivityForResult(intent, saveRequestCode)
并在活动中:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode==saveRequestCode&&resultCode == RESULT_OK) {
if (data != null) {
uri = data?.data!!
saveData(uri)
}
}
}
从活动中调用时,我可以处理折旧
通过声明:
val saveIntent=registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
if (result.data != null) {
uri = result.data?.data!!
saveData(uri)
}
}
}
并调用意图:
Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "*/*"
saveIntent.launch(this)
}
但是如何从适配器处理它?