从android图像库中选择并将其加载到另一个活动中不起作用

时间:2018-07-01 16:24:42

标签: java android android-image

我希望用户从图库中选择一张图片,然后该应用将进入另一个活动并将图片加载到该位置。 这是用来打开文件选择器的。

 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应用程序在选择图片后甚至都没有进入第二个活动。它只是返回到家庭活动。

3 个答案:

答案 0 :(得分:0)

更改

library(tidyverse)
mx <- max(str_count(tex$text, "\\w+"))

tex %>% 
  separate(text, into = paste0("dat_", seq_len(mx))) %>%
  expand(!!! rlang::syms(names(.)))

if (requestCode == 0) {

答案 1 :(得分:0)

我不确定这是否是您提到的所有问题的原因,但是您的if语句在可能不应该嵌套的情况下被嵌套

<style>
.pimg{
background-image: url("paper.gif");
}

</style>

<div class="pimg"></div>

我想你想要更多类似的东西

if(requestCode == 0 ) {
    // only gets here if requestCode == 0

    if(requestCode == 1) {
        //this will never be executed, requestCode == 0
    }
}

我假设switch(requestCode) { case 0: // do stuff break; case 1: // do stuff break; } 设置为PICK_IMAGE_REQUEST,这是行不通的吗?

答案 2 :(得分:0)

好的,我解决了。我在文件Chooser()中调用活动的结果活动。我将其修改为startActivityFor(...)而不是getActivity()。startActivityFor(...)