requestcode resultcode区别,运用
2015-04-23 21:39
127 查看
startActivityForResult(Intent intent,int RequestCode)用于启动另一个activity并等待其返回的结果,毋庸置疑,intent用于启动目标activity,而RequestCode的作用是什么呢?
由于每个activity都可以启动任意的子activity并等待结果,而结果处理函数只有一个--onActivityResult(int requestCode, int resultCode, Intent intent),因此为了区别请求的activity,android将每个请求设定一个大于等于0的int值,这就是requestcode。由此,在onActivityResult函数中即可利用requestCode区别开不同的返回结果。
而onActivityResult中的resultCode参数对应于子模块中setResut(int resultCode, Intent intent)函数中的resultCode值,用于区别不同的返回结果(如请求正常、请求异常等)。
对应流程:
母模块startActivityForResult--触发子模块,根据不同执行结果设定resucode值,最后执行setResut并返回到木模块--母模块触发onActivityResult,根据requestcode参数区分不同子模块
eg:
由于每个activity都可以启动任意的子activity并等待结果,而结果处理函数只有一个--onActivityResult(int requestCode, int resultCode, Intent intent),因此为了区别请求的activity,android将每个请求设定一个大于等于0的int值,这就是requestcode。由此,在onActivityResult函数中即可利用requestCode区别开不同的返回结果。
而onActivityResult中的resultCode参数对应于子模块中setResut(int resultCode, Intent intent)函数中的resultCode值,用于区别不同的返回结果(如请求正常、请求异常等)。
对应流程:
母模块startActivityForResult--触发子模块,根据不同执行结果设定resucode值,最后执行setResut并返回到木模块--母模块触发onActivityResult,根据requestcode参数区分不同子模块
eg:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data == null) return; //结果码 if (resultCode == RESULT_OK) { //处理个人资料中基本参数的修改处理 if (requestCode == 1001) { int type = data.getIntExtra(MineProfileEditUI.TYPE, 0); String value = data.getStringExtra(MineProfileEditUI.VALUE); switch (type) { //昵称 case 0: mUser.name = value; mProfileName.setText(mUser.name); break; //性别 case 1: mUser.gender = Integer.parseInt(value)+1; mProfileGender.setText(mUser.gender==1 ? "男" : "女"); break; //生日 case 2: mUser.birthday = value; mProfileBirthday.setText(mUser.birthday); break; //地址 case 3: mUser.address = value; mProfileAddress.setText(mUser.address); break; //个性签名 case 4: mUser.signature = value; mProfileSignature.setText(value); break; default: break; } } //设置圆形头像修改 else if (requestCode == FROM_ALBUM) { startPhotoZoom(data.getData()); } //剪切头像之后的请求码 else if (requestCode == FROM_CATE) { // 处理结果 Bundle extras = data.getExtras(); if (extras != null) { final Bitmap photo = extras.getParcelable("data"); new Thread(new Runnable() { @Override public void run() { String url=null; Message msg = handler.obtainMessage(); try{ url = FTPUpload.ftpUpload(getUserId(), FTPUpload.Type.IMAGE, bitmap2Stream(photo)); }catch (Exception e){ } if (TextUtils.isEmpty(url)) { msg.what = 0; } else { msg.what = 1; msg.obj = url; } handler.sendMessage(msg); } }).start(); } } } }
相关文章推荐
- (转)Android startActivityForResult 请求码requestCode 及结果码resultCode 详解及运用
- requestCode和resultCode的区别
- wrong requestcode when using startActivityForResult
- 解决MVC 中HttpStatusCodeResult((int)HttpStatusCode.BadRequest, des) 通过StatusDescription 返回中文乱码
- android requestCode和resultCode
- requestCode 和 resultCode 的区别
- activity 的requestCode和resultCode(通过)
- startActivityForResult requestCode 和 resultCode傻傻分不清
- Fragment startActivityForResult,接收requestCode方法
- startActivityForResult请求的REQUEST_CODE和返回的REQUEST_CODE不一致问题
- 在Fragment中使用StartActivityForResult,RequestCode错乱的问题
- android小知识之fragment中调用startActivityForResult(Intent intent,int requestcode)所遇到的问题
- Android中 requestCode与resultCode的区别与用法
- Android开发 Fragment中调用startActivityForResult返回错误的requestCode
- 在Fragment中调用startActivityForResult()后requestCode发生改变
- Android onActivityResult 设置requestCode 返回的code不对
- Android Pitfall - Fragment.startActivityForResult(), requestCode == 65536
- 请求码(requestCode)与结果码(resultCode)解析
- android startActivityForResult(Intent intent, int requestCode) 整理与总结! .
- 请求码(requestCode)与结果码(resultCode)解析