当前位置: 首页 > 知识库问答 >
问题:

如何将startActivityForResult()更改为ActivityResultLauncher?[副本]

赵浩邈
2023-03-14

我是一个超级初学者与Android Studio。我正在尝试打开相册并获取图像,startActivityForResult()已被弃用。如何使用ActivityResultLauncher更改代码?

public class AddPhotoActivity extends AppCompatActivity implements View.OnClickListener {

    private ActivityAddPhotoBinding binding;

    private String Url;

    private FirebaseStorage firebaseStorage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = DataBindingUtil.setContentView(this, R.layout.activity_add_photo);

        binding.addphotoBtnUpload.setOnClickListener(this);


        //Open Album
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType("image/*");
        startActivityForResult(intent, PICK_IMAGE_FROM_ALBUM);

        // Firebase storage
        firebaseStorage = FirebaseStorage.getInstance();

     
        binding.addphotoImage.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                Intent intent = new Intent(Intent.ACTION_PICK);
                intent.setType("image/*");
                startActivityForResult(intent, PICK_IMAGE_FROM_ALBUM);
            }
        });
    }

共有1个答案

姚智
2023-03-14

你应该。

 ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
    new ActivityResultCallback<Uri>() {
        @Override
        public void onActivityResult(Uri uri) {
            // Handle the returned Uri
        }
});

@Override
public void onCreate(@Nullable savedInstanceState: Bundle) {
    // ...
    
    binding.addphotoImage.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            // Pass in the mime type you'd like to allow the user to select
            // as the input
            mGetContent.launch("image/*");
        }
    });
}
 类似资料:
  • 我是一个超级初学者与Android Studio。我正在尝试打开相册并获取图像,startActivityForResult()已被弃用。如何使用ActivityResultLauncher更改代码?

  • 我有下面的代码,从今天算出6个月前的日期。 但是,我希望六个月采用“%Y%m%d”格式。 谢谢你的帮助。

  • 问题内容: 根据以下我用于常规mysql的代码,如何将其转换为使用mysqli? 像更改为一样简单吗? 问题答案: 首先要做的可能是将每个函数调用都替换为等效函数,至少在您愿意使用过程式API的情况下-考虑到您已经有一些基于MySQL API的代码,这将是更简单的方法是一种程序性的。 为了解决这个问题,“ MySQLi扩展功能摘要” 绝对是有用的。 例如: 将被替换 将被替换为和/或,具体取决于上

  • 我可以用代码设置文本粗体: 是的,cell有粗体风格,但它有另一种字体。它有(尺寸:11)。如果我创建没有样式的单元格,我会得到这个单元格:(大小:10)。 好吧,那我试试别的方法: 没有区别。我得到(尺寸: 11)。 但为什么呢?我怎样才能修复它?我希望所有单元格(加粗或不加粗)具有相同的字体名称和大小。我不想手动设置字体。

  • 我的项目使用的是Spring Framework4.0.0 REALESE,可能它不能在JDK1.5版上运行,所以我想把它改成SE1.8。我尝试将我的web项目的JRE系统库从SE1.5更新到1.8。但是我发现从Maven更新项目后,我的项目自动返回到旧版本。我该怎么修好它?