Android 意图附加返回空值
我从girdview适配器类调用startActivityForResult事件。Gridview适配器类是由myFragment类创建的。intent extras在ActivityResult事件上始终返回null。 你认为错误在哪里?谢谢 我的gridview适配器类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
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);