android-studio - 我是开发android应用程序的新手,我只想知道这种方法如何工作
问题描述
这工作得很好,我可以单击相机中的图像并用它更新我的图像视图,但我不知道这种方法是如何工作的。什么东西被传递给 onActivityResult()。
private void pickFromCamera() {
ContentValues values=new ContentValues();
values.put(MediaStore.Images.Media.TITLE,"Temp pic");
values.put(MediaStore.Images.Media.DESCRIPTION,"Temp Description");
image_uri=getActivity().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
Intent cameraIntent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// intent to open camera
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,image_uri);//putting image uri into this
startActivityForResult(cameraIntent,IMAGE_PICK_CAMERA_CODE);
}
解决方案
当我们从当前活动启动另一个活动以获取它的结果时,我们调用方法 startActivityForResult(intent, RESPONSE_CODE);。它重定向到另一个活动,如打开相机、画廊等。从画廊或相机拍摄图像后,返回当前活动,第一个调用方法是 onActivityResult(int requestCode, int resultCode, Intent data)。我们通过这种方法得到结果,就像从相机或图库中获取的图像一样。
推荐阅读
- angularjs - 在一个按钮上禁用多个元素
- jenkins - 如何在 Bitbucket 中自定义 Jenkins 设置的构建消息
- php - Laravel 将请求输入从字符串更改为数组
- javascript - 过滤对象键,在日期之间
- c# - 如何从kafka消息总线推送通知消费者
- adobe-indesign - 在 Adobe Indesign 中创建上下文菜单
- django - Django“ValueError:源代码字符串不能包含空字节”
- python - 根据子列表中项目的顺序将列表列表转换为字典列表
- angular - Angular cli - 组件样式的输出
- rest - 模块可以在rest api中有自己的命名空间吗?