从图库中选择图像时,将 Intent setAction 添加到新的 Activity Result API ActivityResultLauncher

问题描述

我正在使用新的 Activity Result API 来启动和从图库中选择图像,我遇到的问题是如何修改新 Activity Result API 中的 Intent 以像旧的 startActivityForResult 一样工作

以下是我从图库中选择内容的旧方法


        Intent pickImageIntent = new Intent();
        pickImageIntent.setType("image/*");
        pickImageIntent.setAction(Intent.ACTION_PICK);
        startActivityForResult(pickImageIntent,PICK_IMAGE_FROM_galLERY_REQUEST_CODE);

然后下面是我使用 onActivityResult 获取结果的旧方法


@Override
    public void onActivityResult(int requestCode,int resultCode,@Nullable @org.jetbrains.annotations.Nullable Intent data) {
        super.onActivityResult(requestCode,resultCode,data);

        if (requestCode == PICK_IMAGE_FROM_galLERY_REQUEST_CODE) {
            if (resultCode == RESULT_OK && data != null) {

                Uri selectedImageUri = data.getData();

                imvImage.setimageURI(selectedImageUri);

            } else {
                // Show Error Exception Dialog
                // We encountered an error while picking your image from gallery
                // Try Again,Cancel
            }
        }
}

下面是我使用新的 Activity Result API 启动相机的新方法


getimageFromgallery.launch("image/*");

并使用 ActivityResultLauncher 获得以下结果


ActivityResultLauncher<String> getimageFromgallery = registerForActivityResult(new ActivityResultContracts.GetContent(),new ActivityResultCallback<Uri>() {
                @Override
                public void onActivityResult(Uri uri) {

                    imvImage.setimageURI(uri);
                }
            });

我的问题是如何将某些内容解析为启动方法或将操作设置为意图示例

pickImageIntent.setAction(Intent.ACTION_PICK);

到这里

 getimageFromgallery.launch("image/*");

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...