我使用Intent.ACTION_PICK从画廊拍照。我在实现这两个活动时已经成功了,但在使用fragment时发现了问题。我需要一些帮助,谢谢。
这里是MainActivity.kt
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK) {
            when (requestCode) {
                REQUEST_NEW_CHAT -> {
                    val name: String = data?.getStringExtra(PARAM_NAME) ?: ""
                    val phone: String = data?.getStringExtra(PARAM_PHONE) ?: ""
                    checkNewChatUser(name, phone)
                }
                //TODO: I.5. Update Status Page
                REQUEST_CODE_PHOTO -> statusUpdateFragment?.storeImage(data?.data)
            }
        }
    }这里是StatusUpdateFragment.kt
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        lay_progressbar.setOnTouchListener { v, event -> true }
        btn_status.setOnClickListener { onUpdate() }
        populateImage(context, imageUrl, img_status)
        lay_status.setOnClickListener{
            if(isAdded){
                (activity as MainActivity).startNewActivity(REQUEST_CODE_PHOTO)
            }
        }
    }
    fun storeImage(imageUri: Uri?) {
        if (imageUri != null && userId != null) {
            //error message : Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
            try {
                    Toast.makeText(activity, "Uploading...", Toast.LENGTH_SHORT).show()
                    lay_progressbar.visibility = View.VISIBLE
            }
            catch (e:Exception){
                e.message
            }
            /*more code that i hide it...*/
        }
    }发布于 2020-07-02 09:59:15
真主啊,我已经被法鲁解决了。
MainActivity.kt :必须在onActivityResult添加此内容
   override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK) {
            when (requestCode) {
                REQUEST_NEW_CHAT -> {
                    val name: String = data?.getStringExtra(PARAM_NAME) ?: ""
                    val phone: String = data?.getStringExtra(PARAM_PHONE) ?: ""
                    checkNewChatUser(name, phone)
                }
                //TODO: I.5. Update Status Page
                REQUEST_CODE_PHOTO -> statusUpdateFragment?.storeImage(data?.data,this)
            }
        }
    }StatusUpdateFragment.kt :必须在storeImage添加上下文
fun storeImage(imageUri: Uri?,context: Context) {
if (imageUri != null && userId != null) {    try {            Toast.makeText(context, "Uploading...", Toast.LENGTH_SHORT).show()            lay_progressbar.visibility = View.VISIBLE    }    catch (e:Exception){        e.message    }//more code hidden}
https://stackoverflow.com/questions/62687446
复制相似问题