startActivityForResult 的替代方案
Alternative for startActivityForResult
我正在尝试使用 picasso 获取图像。由于 startActivityForResult
已贬值,我需要迁移到新的 API 。代码如下.
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
&& data != null && data.getData() != null) {
mImageUri = data.getData();
Picasso.get().load(mImageUri).into(productImage);
}
}
这是迁移到新 Api 的方法。
第 1 步:在您的 class 中声明一个顶部变量,用于从图库中获取图像
ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
//You are provided with uri of the image . Take this uri and assign it to Picasso
}
});
第 2 步:现在在您的 OnCreate 中,在您的按钮上设置一个 onClickListener,您希望用户通过该按钮转到图库并按以下方式启动合同:
selectButton.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/*");
}
});
如果您遇到任何错误,请在下方评论
我正在尝试使用 picasso 获取图像。由于 startActivityForResult
已贬值,我需要迁移到新的 API 。代码如下.
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
&& data != null && data.getData() != null) {
mImageUri = data.getData();
Picasso.get().load(mImageUri).into(productImage);
}
}
这是迁移到新 Api 的方法。
第 1 步:在您的 class 中声明一个顶部变量,用于从图库中获取图像
ActivityResultLauncher<String> mGetContent = registerForActivityResult(new GetContent(),
new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
//You are provided with uri of the image . Take this uri and assign it to Picasso
}
});
第 2 步:现在在您的 OnCreate 中,在您的按钮上设置一个 onClickListener,您希望用户通过该按钮转到图库并按以下方式启动合同:
selectButton.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/*");
}
});
如果您遇到任何错误,请在下方评论