关闭

startActivityForResult 使用注意事项

713人阅读 评论(0) 收藏 举报
分类:

startActivityForResult();这个方法主要用于两个Activity交互的场景。


QuestionDetailActivity.this调到QuestionReportActivity.class

Intent intent = new Intent(QuestionDetailActivity.this,QuestionReportActivity
.class);
intent.putExtra(CommonConstants.QUES_ID,quesId);
startActivityForResult(intent,REPORT_REQUEST_CODE);

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   if(data != null){

   }
  if(resultCode == RESULT_OK){
     ((OnTabActivityResultListener)myActivity).onTabResume();
  } 

   data 如果用来取值,一定要判断是否为空,并且要要判断 是否要真的做一些业务操作,如用不到data,还可以根据resultCode值来确定是否要做处理,
如果是后者Activity单纯的back返回的话,理论上应该不用做任何处理,所有就要进行判断,不要引起不必要的消耗和异常。

 (可以根据requestCode,或者resultCode进行业务返回区分)
}

QuestionReportActivity中的返回代码。
Intent intent = new Intent();
intent.putExtra(CommonConstants.REPORT_ID,reportId);
//setResult一定要在finish之前,并且要处理默认按键返回。按键返回默认会调用setResult(Activity.RESULT_CANCELED);

setResult(Activity.RESULT_OK,intent);
Util.closeKeyboard(context, mEtReason);
finish(); 


0
0
查看评论

startActivityForResult。。。。注意点

startActivityForResult(Intent intent,int RequestCode) 同于启动另一个Activity并等待他返回的结果。。。 onActivityResult(int requestCode,int resultCode,Intent intent) ...
  • love_missROU
  • love_missROU
  • 2016-04-19 11:38
  • 316

Android------startActivityForResult的详细用法

在启动另外一个Activity的时候,有两种方法,一种是直接使用startActivity,另外一种就是使用startActivityForResult。前一种想必大家都明白怎么使用了,我就不废话了。本文主要通过一个Demo来学习一下第二种。startActivityForRes
  • sunchaoenter
  • sunchaoenter
  • 2011-07-17 13:30
  • 148502

startActivityForResult()崩溃的一个原因

在一次startActivityForResult()调用之后,程序崩溃了,之后调试了一下,发现源码中对requestCode做了限制,也就是requestCode大于65535的时候会抛出异常,恰好我把requestCode设置成了1008611,所以会崩溃也是理所应当.
  • OnionOmelette
  • OnionOmelette
  • 2017-03-21 20:03
  • 591

关于startActivityForResult()方法后Activity直接退出的问题原因和解决办法

现象: 今天在做调用相机拍照然后进行一些裁剪后显示的Demo。大题思路就是这样 private final View.OnClickListener onClickListener = new View.OnClickListener() { @Override public voi...
  • u013224148
  • u013224148
  • 2015-05-14 16:04
  • 6069

Android Pitfall - Fragment.startActivityForResult(), requestCode == 65536

Android里,Fragment和Activity具有 startActivityForResult() 方法,但在支持库里,二者的表现却会有很大差异。
  • JektonLuo
  • JektonLuo
  • 2015-08-06 20:52
  • 1049

startActivityForResult 用在于多个Activity之间传值时一些需要注意的用法

1.在Activity中得到新打开Activity 关闭后返回的数据 public class MainActivity extends Activity { private final static String TAG="MainActivity"; @Ov...
  • u012620150
  • u012620150
  • 2016-06-23 16:33
  • 748

android解决方法数超过65536问题

随着android应用软件开发的不断发展,应用软件不断扩展,相信作为一个android开发者的你遇见过,或者将来会遇见的一个问题:Unable to execute dex: method ID not in[0, 0xffff]: 65536)当出现这个错误时说明你本身自己的工程代码中含有的太多的...
  • u010231111
  • u010231111
  • 2015-12-22 22:15
  • 1737

Android startActivityForResult requestCode限制

requestCode的值必须小于2^16,否则会报如下错误: java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode
  • vipycm
  • vipycm
  • 2015-05-28 16:47
  • 1630

【小知识点总结】startActivityForResult 和onActivityResult 的用法及【遇到的问题】

利用startActivityForResult 和 onActivityResult在activity间传递数据 AndroidManifest.xml             android:...
  • Jason_996
  • Jason_996
  • 2015-08-24 17:58
  • 902

自定义Adapter中实现startActivityForResult的分析

最近几天在做文件上传的时候,想在自定义Adapter中启动activity时也返回Intent数据,于是想到了用startActivityForResult,可是用mContext怎么也调不出这个方法,只能调用startActivity这个方法,于是在网上搜一下,可以利用一个方式可以间接的解决这个问...
  • zhencheng20082009
  • zhencheng20082009
  • 2017-03-16 11:11
  • 1331
    个人资料
    • 访问:18836次
    • 积分:346
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论