`

startActivityForResult与setResult

 
阅读更多

 

按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .

 

解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……把BACK事件直接自己给吞了


:如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给parent的onActivityResult去处理!

 

比如在一个StartActivityForResult起来的Activity中有如下代码:

 

		Intent result = getIntent();
		result.putExtra(string1, string2);
		setResult(RESULT_OK, result); //返回给父类的
		finish();

 

 这个结果会返回给之前的Activity

 


怎样给新的 Activity 传递参数
    * 也需要通过意图来实现。因为意图本身就有 “携带数据” 的功能
    * 因此只要将数据保存在意图中就可以了
        可以调用 Intent 的 putXXXExtra 方法
        Intent 提供了多种的重载后的 putExtra 方法。可以接收各种各样的单个参数
    * Acticity 只需要调用 getExtras() 就可以获取到上一个 Acticity 传过来的参数集合
        getExtras().get(String key) 可以获取具体参数的值
    * 也可以很方便的通过 getXXXExtra方法来获取指定的单个参数值
         如:getStringExtra、getIntExtra、getFloatExtra ...

 

 

分享到:
评论

相关推荐

    Android startActivityForResult和setResult的区别

    Android startActivityForResult和setResult的区别 Android 中的 startActivityForResult 和 setResult 是两个常用的方法,用于 Activity 之间的数据交互和跳转。然而,很多开发者对这两个方法的区别和使用场景不甚...

    startActivityForResult+onActivityResult+setResult

    3个方法的介绍和使用 startActivityForResult(Intent intent, int requestCode ) onActivityResult(int requestCode ,int resultCode, Intent data) setResult(int resultCode,intent intent)

    StartActivityForResult

    常见问题与解决方案 #### 4.1 请求码混淆 如果你有多个`StartActivityForResult`的调用,确保每个请求码是唯一的,否则可能无法正确识别返回结果。可以使用常量定义请求码,比如`REQUEST_CODE_IMAGE_SELECTION`、...

    startActivityForResult的详细用法

    在Android应用开发中,`startActivityForResult`是一个非常重要的方法,它允许我们在启动一个Activity时传递数据,并在那个Activity执行完后返回结果到调用它的Activity。这个过程涉及到Intent、生命周期管理和数据...

    Intent传递数据

    这是介绍了Intent怎样传递数据,传递什么类型的数据,和startactivityforResult,setResult,onactivityResult的用法,请参考:http://blog.csdn.net/forwardyzk/article/details/46620021

    startActivityForResult intent 跳转相关的

    在Android应用开发中,`startActivityForResult()`是一个关键方法,...至于“MiniDiary”这个文件名,可能是与日记应用相关的示例代码或日志文件,它可能展示了如何在日记应用中实际应用`startActivityForResult()`。

    【android】的startActivityForResult

    在Android应用开发中,`startActivityForResult`是一个关键方法,用于在两个Activity之间进行交互,尤其是在需要从一个Activity启动另一个Activity并期待返回结果时。这个方法允许开发者在启动新的Activity时传递...

    startActivityForResult你所不知道的---Fragment

    `startActivityForResult()`方法在`Fragment`中使用与在`Activity`中大致相同,主要目的是启动一个新的`Activity`并等待结果。当目标`Activity`完成其任务后,会回调`Fragment`中的`onActivityResult()`方法,将结果...

    StartActivityForResult小例子

    在Android应用开发中,`StartActivityForResult`是一个关键的机制,它允许一个Activity启动另一个Activity,并期待在后者完成时返回一些结果。这个过程涉及到两个主要的Activity:启动者(调用`...

    startActivityForResult Demo

    在Android应用开发中,`startActivityForResult`是一个非常重要的方法,它允许我们启动一个新...在实践中,结合源码和示例是最好的学习方法,因为这样可以直观地看到代码如何与Android系统交互,以及如何处理各种情况。

    Android-一种startActivityForResult更简单流程

    在新的Activity B中,我们可以使用`setResult(int resultCode, Intent data)`来设置结果,然后调用`finish()`关闭Activity B。当Activity B关闭时,它的结果将被传递回Activity A,并在A的`onActivityResult(int ...

    Android之Intent通过startActivityForResult方法启动新Activity

    请求与响应流程 1. **启动新Activity**:当调用`startActivityForResult()`时,系统会启动指定的Activity,并记录请求码。 2. **新Activity操作**:新启动的Activity(如`SecondActivity`)执行用户交互或业务逻辑...

    startActivityForResult使用方式

    3. `onActivityResult()`会在所有与当前Activity关联的`onPause()`方法之后调用,而在`onResume()`之前。 4. 当新启动的Activity被其他应用组件打断(如来电、通知等)时,`onActivityResult()`可能不会被调用,需...

    startActivityForResult用法详解

    在Android应用开发中,`startActivityForResult`是一个关键的方法,用于启动一个新的Activity并期待返回一个结果。这个方法常用于在不同Activity之间进行数据交互,比如获取用户的选择、处理权限请求等。在这个场景...

    startActivityForResult_demo

    在Android应用开发中,`startActivityForResult`是一个关键的API,用于从一个活动(Activity)启动另一个活动,并期望在新活动执行完毕后返回结果。这个方法使得不同活动间的交互变得可能,尤其在需要用户进行一些...

    测试Activity的四种启动模式对startActivityForResult的影响

    4. **SingleInstance**:与SingleTask类似,但更为严格,它不仅在单独的任务栈中运行,而且该任务栈中只能有一个`Activity`实例。这意味着,任何通过`startActivityForResult`启动的`Activity`都将被放入其他任务栈...

    Android-基于RxPermissions框架思想在使用startActivityForResult可以不重写onActivityResult回调

    我们可以利用`Activity`的`setResult`和`finish`方法,当子Activity需要返回结果时,将结果封装到Intent中,然后调用`finish()`。这样,结果就会自动通过`onActivityResult`回调返回,但我们不需要重写这个回调,...

    StartActivityForResult代码示例

    `StartActivityForResult`是`Activity`中的一个重要方法,用于启动一个新的`Activity`并在完成时返回结果。这个方法通常用于执行需要用户交互的任务,如选择照片、输入数据等,并在用户操作完成后将结果传递回原始的...

    Android onActivityResult和setResult方法详解及使用

    如果你想在Activity中得到新打开Activity关闭后返回的数据,你需要使用系统提供的startActivityForResult(Intent intent,int requestCode)方法打开新的Activity,新的Activity关闭后会向前面的Activity传回数据,...

Global site tag (gtag.js) - Google Analytics