Android 意图附加返回空值

Android 意图附加返回空值,android,android-intent,android-fragments,Android,Android Intent,Android Fragments,我从girdview适配器类调用startActivityForResult事件。Gridview适配器类是由myFragment类创建的。intent extras在ActivityResult事件上始终返回null。 你认为错误在哪里?谢谢 我的gridview适配器类 public class MyAdapter extends ArrayAdapter<MyInfo> { @Override public View getView(int position, View c

我从girdview适配器类调用startActivityForResult事件。Gridview适配器类是由myFragment类创建的。intent extras在ActivityResult事件上始终返回null。 你认为错误在哪里?谢谢

我的gridview适配器类

 public class MyAdapter extends ArrayAdapter<MyInfo> {

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;

    if (view == null) {

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(layoutResourceID, null);

    }

    ImageButton btnImage = (ImageButton) view.findViewById(R.id.btnImage);

        @Override
        public boolean onLongClick(View v) {

            Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

            intentCamera.putExtra("Asd", "Asd");

            MyFragment.startActivityForResult(intentCamera, 1);

            return true;
        }
    });
  }

您正在调用android默认照相机应用程序 每个活动都可以接受一组预定义的附加项,并返回相同的附加项。 因此,在OnActivityResult中找不到用于相机目的的此类附加功能

例如:intent.putExtra(MediaStore.EXTRA_输出,fileUri)

相机应用程序不会返回您的自定义字符串“Asd”-这不是它的工作方式

您可以期望将照片图像或图像文件返回给您

如果你只是问“自闭症”,那么这就是你的答案——你不会得到它。如果你问为什么没有照片回来,那么请继续阅读


(作为上一个答案的一部分保留)

如果要保存相机拍摄的照片,可以执行以下步骤:

您需要在
Intent
中向相机传递正确的数据。根据Android开发者文档:

。。。其中方法
getOutputMediaFileUri()
是一种用于创建要保存图像的文件的方法


有关调用摄像头应用程序的更多信息,请参阅以下类似问题:

在这里,您将看到更多的工作示例

  Bundle bundle = data.getExtras();
您正在
intent
中拉取
bundle
而未在
intent
中添加
bundle
。 如果您需要intent直接提供的字符串,请调用

 data.getStringExtra("Asd")
替换此行:

MyFragment.startActivityForResult(intentCamera, 1);
关于这一点:

getApplicationBaseContext().startActivity(intentCamera);

@RichardLeMesurier我编辑我的代码。你在哪里返回结果?对于任何试图在捕获后传递任何值的人,只需使用
公共变量
公共静态变量
,没有其他方法(可能有?但我是这样做的)。我可以使用位图photo=(位图)data.getExtras()获取(“数据”);代码。没有问题。但我无法获取字符串额外参数。Intent getstringextra返回null@lol是的,这是正确的,那么这就是你想要的“Asd”吗?不幸的是,你不能这样做……我想将图像名称转换为intent。因为我想将图像另存为其他名称的图像。@lol如果你想保存图像,那么你必须根据我回答中的示例调用应用程序-注意,你传入了图像将写入的文件的URI。然后,相机应用程序应该保存图像,而不是将整个图像返回给您。
MyFragment.startActivityForResult(intentCamera, 1);
getApplicationBaseContext().startActivity(intentCamera);