【发布时间】:2018-07-01 16:24:41
【问题描述】:
我希望用户从图片库中选择一张图片,然后应用将进入另一个活动并在那里加载图片。 这是打开文件选择器。
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
getActivity().startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
这就是我的 onActivityResult 中的内容
@Override
public 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();
Intent intent = new Intent(getActivity(),AddActivity.class);
intent.putExtra("imagePath",mImageUri.toString());
intent.putExtra("requestCode",PICK_IMAGE_REQUEST);
startActivity(intent);
}
这是我的第二个活动的代码,基本上用户可以打开相机拍照或从图片库中选择。从相机拍照有效,但选择图像并不是我有两个请求代码的原因。
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_additem);
Log.i(TAG, "onCreate: started");
setupBottomNavigationView();
imageView = findViewById(R.id.addPic);
Bundle extras = getIntent().getExtras();
int requestCode = extras.getInt("requestCode");
if (requestCode == 0) {
if (extras != null) {
Bitmap image = (Bitmap) extras.get("image");
if (image != null) {
imageView.setImageBitmap(image);
}
}
if (requestCode == 1) {
Intent intent = getIntent();
String image_path = intent.getStringExtra("imagePath");
Uri fileUri = Uri.parse(image_path);
imageView.setImageURI(fileUri);
}
}
}
无法理解为什么它不起作用,我的 android 应用程序在选择图像后甚至没有进入第二个活动。它只是返回到 home 活动。
【问题讨论】:
-
这段代码(
onActivityResult)是在 Activity 还是在 Fragment 中?可能类似于这个问题stackoverflow.com/questions/6147884/… 那里接受的答案建议调用startActivityForResult而不是getActivity().startActivityForResult -
它来自一个片段。不过拍照效果很好
标签: java android android-image