onActivityForResult не вызывается - PullRequest
0 голосов
/ 19 марта 2019

В этом коде 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 и попытался обмануть, но не сделалне решить мою проблему.

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Используйте разные REQUEST_CODES для активности и фрагмента.Я попробовал ваш код и попробовал разные коды запросов 101 и 102, я получил результат.

0 голосов
/ 03 апреля 2019

Это не реальный способ решения, но я реорганизую это с Kotlin на Java (точно такой же код), и он работает также ...

...