Android onActivityResult
来源:互联网 发布:lofter设置个性域名 编辑:程序博客网 时间:2024/05/14 12:14
对于intent主要的分类主要包括隐式意图和显式意图。显式意图通常主要是启动本应用中的Activity之间的数据,
而隐式意图则常见于启动系统中的某些特定的动作,比如打电话,或者是跨应用的Activity启动。
一般来说:
显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、
数据(URI和数据类型)找到最合适的组件来处理这个意图。
1、MainActivity里面的主要代码
(1)当需要返回值时,那么在启动另一个Activity时要用到startActivityForResult(intent, REQUEST_CODE);
注意第二个参数是请求的int类型的值,这个值要在onActivityResult()方法中和requestCode做判断的,
由此来判断是启动的某个Activity。
(2)onActivityResult()方法中的第二个参数就是SecondActivity传回来的键,
第三个参数就是SecondActivity传回来的键对应的值。
finalint RESULT_CODE=101; final int REQUEST_CODE=1; public void enterSecond(Viewview) { Intent intent=new Intent(this,SecondActivity.class); startActivityForResult(intent, REQUEST_CODE); } @Override protected void onActivityResult(int requestCode,int resultCode, Intent data){ Log.i(TAG,"onActivityResult"+"requestCode"+requestCode+"\n resultCode="+resultCode); if(requestCode==REQUEST_CODE){ if(resultCode==RESULT_CODE){ String result=data.getStringExtra("second"); textView.setText(result); } } super.onActivityResult(requestCode, resultCode, data); }
2、SecondActivity 类中的代码:
这个里面的RESULT_CODE、intent分别跟上段代码中onActivityResult()方法中的第二个、第三个参数相对应。
finalint RESULT_CODE=101; public void closeButton(Viewview) { Intent intent=new Intent(); intent.putExtra("second","I am second!"); setResult(RESULT_CODE, intent); finish(); }
3、除此之外,onActivityResult()方法中的第二个参数resultCode还有系统自带的一些参数,也就是说,如果我们启动的intent是隐式意图,那么可以用Activity类中RESULT_OK来表示操作已经顺利结束。
例如,调用系统图库的返回,请看代码:
final int CROP_PIC_REQUESTCODE = 23;final int SELECT_PICTURE = 21;if(resultCode == RESULT_OK&& requestCode== SELECT_PICTURE){ System.out.println("调用图库返回,关闭activity"); Intent intent1 =new Intent("com.android.camera.action.CROP"); intent1.setDataAndType(data.getData(),"image/*"); intent1.putExtra("crop","true"); intent1.putExtra("aspectX", 1); intent1.putExtra("aspectY", 1); intent1.putExtra("outputX", 80); intent1.putExtra("outputY", 80); intent1.putExtra("return-data", true); startActivityForResult(intent1, CROP_PIC_REQUESTCODE); }
- android onActivityResult
- Android onActivityResult
- Android-onActivityResult
- Android onActivityResult
- Android:startActivityForResult 和 onActivityResult
- Android onActivityResult()的问题
- Android fragment onActivityResult 问题
- Android:onActivityResult的使用
- Android Intent 传值 --onActivityResult
- Android:startActivityForResult 与 onActivityResult
- Android:onActivityResult的使用
- Android fragment onActivityResult 不起作用
- Android fragment onActivityResult 问题
- Android fragment onActivityResult 问题
- android onActivityResult没调用
- Android onActivityResult不执行
- android Fragment onActivityResult回调
- android ----onActivityResult 判空
- 汉字的正则表达式
- C语言学习:初接触
- Andriod 给控件添加边框
- 怎么解决Android studio导入项目卡死
- Spark源码初探-从spark-submit开始
- Android onActivityResult
- CSS3相关知识总结
- Java下合并多个文件
- 【解惑】领略Java内部类的“内部”
- 状态压缩dp(hdu2662)(我综合了一个人的解释和另一个人的代码)
- “模块计算机类型“x86”与目标计算机类型“X64”冲突”
- Linux 命令手册(超级实用)
- iOS 10 Universal Links(通用连接),从微信网页连接跳转到公司APP之实现流程详解--2016最新版
- Java内部类的使用小结