繁体   English   中英

Android活动startActivityForResult没有被调用

[英]Android activity startActivityForResult not being called

我正在尝试获取一个文件并将该文件传递给Firebase并将其存储在我的存储桶中,但是由于某些原因,即使按如下所示将android:launchMode="singleTop"属性添加到清单文件后,我的startActivityForResult也没有被调用另一个答案,也没有在应该启动意图的按钮单击事件上使用kotlin静态函数调用。 请注意,两者都在同一活动中!

这是我的按钮单击处理程序:

override fun onCreate(savedInstanceState: Bundle?) {
   btnImage.setOnClickListener {
            val intent = Intent()
            intent.action = Intent.ACTION_GET_CONTENT
            // set the intent type
            intent.type = "image/*"
            // accept only local content
            intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true)
            startActivityForResult(Intent.createChooser(intent, "Insert Picture"), PICTURE_RESULT)
        } 
}

这是我的startAtivityForResult函数:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
//        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == PICTURE_RESULT && resultCode == Activity.RESULT_OK) {
            if (data != null) {
                val imageUri : Uri = data.data!!
                val ref : StorageReference = FirebaseUtil.storageRef!!.child(imageUri.lastPathSegment!!)
                ref.putFile(imageUri)

               {


            } else {
                Log.d("IMAGE", resultCode.toString())
                Toast.makeText(this, "Upload failure", Toast.LENGTH_LONG).show()
            }

        }
    }

Android活动startActivityForResult没有被调用

您需要在onActivityResult内部调用super.onActivityResult(requestCode, resultCode, data)

您已在onActivityResult注释了super.onActivityResult(requestCode, resultCode, data)的代码

onActivityResult内部的super.onActivityResult(requestCode, resultCode, data)删除//

另外,使用这个

 if (resultCode == Activity.RESULT_OK && requestCode == PICTURE_RESULT)

对此有所了解

if (resultCode == PICTURE_RESULT && resultCode == Activity.RESULT_OK)

样本代码

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK && requestCode == PICTURE_RESULT) {
            if (data != null) {
                val imageUri : Uri = data.data!!
                val ref : StorageReference = FirebaseUtil.storageRef!!.child(imageUri.lastPathSegment!!)
                ref.putFile(imageUri)

               {


            } else {
                Log.d("IMAGE", resultCode.toString())
                Toast.makeText(this, "Upload failure", Toast.LENGTH_LONG).show()
            }

        }
    }

在您的if语句中将resultCode == PICTURE_RESULT更改为:requestCode == PICTURE_RESULT。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM