android - onActivityForResult 没有被调用
问题描述
在这段代码中,onActivityForResult
从不调用。
我的活动:
class PersonalInformationActivity : AppCompatActivity(), View.OnClickListener {
private val READ_REQUEST_CODE = 2
lateinit var user: User
lateinit var email: EditText
lateinit var phoneNumber: EditText
lateinit var username: EditText
lateinit var profilePicture: ImageView
lateinit var photoURI: Uri
//someCode
override fun onClick(v: View) {
when (v.id) {
R.id.profilePicture -> {
importPicture()
if (photoURI != null) {
try {
val file = FileUtil.from(this, photoURI)
RequestAddUserProfilePicture.MakeRequestTask(this, this).execute(user.token, file, photoURI.path!!.substring(photoURI.path!!.lastIndexOf("/") + 1))
Log.d("file", "File...:::: uti - " + file.path + " file -" + file + " : " + file.exists())
} catch (e: IOException) {
e.printStackTrace()
}
} else {
Toast.makeText(this, "need pic", Toast.LENGTH_LONG).show()
}
}
}
}
private fun importPicture() {
val intent = Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
setResult(Activity.RESULT_OK)
startActivityForResult(intent, READ_REQUEST_CODE)
}
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
if (data != null) {
photoURI = data.data
Log.d("URI", "Uri:" + photoURI.toString())
}
}
}
}
我已阅读此答案:https ://stackoverflow.com/a/19546302/7937498 并尝试了技巧但没有解决我的问题。
解决方案
对活动和片段使用不同的 REQUEST_CODES。我尝试了您的代码并尝试了不同的请求代码 101 和 102,我得到了结果。
推荐阅读
- java - 如何在 MVC Spring Controller 中的两个端点之间传递数据
- reactjs - 如何将数据传递到不同的屏幕
- python - 在不使用路径的情况下将图像导入 pygame
- c# - Host Header 将导致 Puppeteer 中的 Invalid Argument 错误
- reactjs - 期望在箭头函数中返回一个值 - useEffect
- mysql - 如何通过 id 在 MySQL 中的 json 整数数组列中获取相关项目
- node.js - AWS LAMBDA S3 Glacier - 如果 S3 对象的存储类在 Glacier 中,如何检索它
- python - 如何使精灵(乌龟)逐个单元格地通过最佳路径
- nsis - 7998: ANSI 目标已被弃用
- react-native - 我如何将令牌传递给我的子组件反应原生