`
liangoogle
  • 浏览: 279502 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

有返回值的startActivity---------startActivityForResult()

 
阅读更多

1 从one Activity跳到 two Activity:

 

startActivity(new intent(this,two.class));

 

但是我们想在two里加个按钮,当点击时就返回到原来的one中,

 

这时我们当然可以在点击事件中写:

 

startActivity(new intent(this,one.class));

 

但是我们还有另一种方法:

 

从one Activity跳到 two Activity:

 

startActivityResult(new intent(this,two.class),1);

 

1 是用来标记是否是这个startActivityResult的返回值的,一般情况下如果只有一个startActivityResult,没有什么作用,但是如果我们one中有两个startActivityResult,我们可以用1,2......来区分是那个startActivityResult的返回值,确定这个返回结果是谁返回的。

 

我们跳到two中了,在two里的按钮的点击事件中返回到one:

 

 this.setResult(RESULT_OK);

  this.finish();

 

这样把RESULT_OK这个值返回给了one,在one的

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {}

中处理:

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode==RESULT_OK&&requestCode==1) {

 

              //要做的事。

 

        }

    }

 

2 我们想把数据从one带到two,再从two带到one:

1 ---->2; 1中:

Intent intent = new Intent(this, Activity2.class);  

Bundle bundle = new Bundle();

bundle.putString("first", "one");

intent .putExtras(bundle); 

startActivityForResult(intent ,1);

 

2中取得1传过来的数据:

Intent intent = this.getIntent();

Bundle bundle = intent .getExtras();

String string = bundle .getString("first");

 

2的按钮的点击事件中返回1,并带着数据:

 

Intent intent = new Intent();

Bundle bundle = new Bundle();

bundle.putString("second", "two");

intent.putExtras(bundle);

this.setResult(RESULT_OK, intent);

this.finish();

 

返回1后在1中处理返回的结果和返回的数据:

  1. protected void onActivityResult(int requestCode, int resultCode,  
  2.                                     Intent data){  
  3.         switch (resultCode){  
  4.         case RESULT_OK:  
  5.             Bundle bundle = data.getExtras();  
  6.               
  7.             String string = bundle.getString("second");  
  8.               
  9.             updateText(string);  
  10.         }  
  11.     } 

 

 

 

 

分享到:
评论

相关推荐

    Android带有返回值的finish(StartActivityForResult)

    `StartActivityForResult`的工作原理是这样的:当一个Activity(我们称之为A)启动另一个Activity(B)时,可以使用`startActivityForResult()`方法而不是普通的`startActivity()`. 在B中执行完某些操作后,可以通过...

    3-12-5(Activity跳转与操作).7z

    `startActivity()`和`startActivityForResult()`的区别在于是否需要返回结果。 此外,Activity的生命周期是Android开发者必须了解的重要概念。包括`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop...

    Android Intent带返回值跳转Demo

    当从一个Activity启动另一个Activity并希望得到返回结果时,我们需要使用startActivityForResult()方法代替普通的startActivity()。下面详细介绍这个过程: 1. 创建Intent 首先,创建一个新的Intent对象,指定目标...

    Android review 打开activity返回结果

    Intent intent = new Intent(StartActivity.this, TargetActivity.class); startActivityForResult(intent, REQUEST_CODE); ``` 这里的`REQUEST_CODE`是一个自定义的整数值,用于在`onActivityResult()`中区分不同的...

    android 利用intent调用activity 简明精炼的例子

    对于有返回值的情况,我们可以使用`startActivityForResult()`方法启动Activity。这个方法需要两个参数:Intent和请求码。请求码用于在接收结果时区分不同的调用。 在目标Activity中,我们可以通过`setResult()`...

    Android 打开Activity,获取其返回结果Demo

    当你需要在新启动的Activity中执行某些操作并返回结果时,应该使用startActivityForResult()方法,而不是简单的startActivity()。这样,当新Activity完成任务后,可以将结果返回给调用者。 ```java Intent intent...

    Android学习笔记-Activity篇

    startActivity(intent); ``` 2. 启动带有返回结果的Activity:若需从目标Activity返回结果,可以在启动时添加`startActivityForResult()`,并在目标Activity中使用`setResult()`设置返回值,最后调用`finish()`结束...

    Android编程基础-实验报告三.doc

    - 使用`startActivityForResult()`启动Activity并在该Activity结束时通过`onActivityResult()`方法接收返回的数据。 - 示例代码:`startActivityForResult(intent, SUBACTIVITY1);` - 在`onActivityResult()`中...

    Android应用源码之(Activity跳转与操作).zip

    6. **startActivity()和startActivityForResult()**:startActivity()用于无返回值的跳转,而startActivityForResult()则可以在调用者Activity中接收到被启动Activity的结果。 7. **finish()方法**:调用Activity的...

    android画面跳转及传值实例代码.pdf

    在`Wh4Activity`中,当用户点击"按钮1",会创建一个新的`Intent`实例并设置目标类为`Activity1`,然后调用`startActivity()`启动`Activity1`。 - 对于"按钮2",除了设置目标类为`Activity2`外,还会使用`putExtra()...

    android activity之间跳转的示例程序

    为了返回上一个Activity,可以使用finish()方法关闭当前Activity,或者使用startActivityForResult()进行有结果的跳转,并在目标Activity中通过setResult()设置返回值,然后在源Activity的onActivityResult()方法中...

    Android startActivityForResult实例详解

    startActivityForResult用于两个activity之间的数据传递,Activity1传值给Activity2,Activity2再返回值给Activity1。 第一步:Activity1中:startActivityForResult(Intent intent, Int requestCode) Intent ...

    第6章组件通信与广播消息.pptx

    创建Intent时,需要传入当前的ApplicationContext和目标Activity的Class对象,然后调用startActivity(Intent)方法启动Activity。例如在IntentDemo示例中,IntentDemoActivity通过Intent启动NewActivity,需在...

    安卓中activity的三种intent跳转方式

    然后,在 IntentOneDemoActivity 中,我们创建了一个 Intent 对象,并将其传递给 startActivity() 方法,以便启动 IntentTwoDemoActivity。 第二种方式:从一个 Activity 传值到另一个 Activity 在 Android 中,...

    Android编程中Intent实现页面跳转功能详解

    本文实例讲述了Android编程中...startActivity(intent) 2、有返回值 startActivityForResult(intent,requestCode); onActivityResult(int requestCode,int resultCode,Intent data) setResult(resultCode,data); FAc

    第3章 Activity与Intent.pptx

    - **startActivity(Intent intent)**:无返回值,启动新的Activity并跳转,不会接收新Activity的结果。 - **startActivityForResult(Intent intent, int requestCode)**:启动新Activity并期望收到结果,通过重写...

    基于android startActivityForResult的学习心得总结

    首先,理解`startActivityForResult`的核心概念:当我们需要在启动一个新Activity时获取返回值,就需要使用`startActivityForResult`而不是`startActivity`。通过`startActivityForResult`,我们可以启动一个新的...

    基于Android的Activity跳转

    startActivity(intent); ``` 2. **隐式Intent**: 隐式Intent并不指定具体的目标Activity,而是通过设置Action、Data、Category等元数据,让系统根据这些信息去匹配合适的Activity。这种方式常用于实现跨应用的...

    Activity示例代码

    通过new Intent(Context, Class) 创建Intent,然后使用startActivity(Intent) 或 startActivityForResult(Intent, int) 启动Activity。 10. **Intent的Flags**:Intent可以设置各种标志,如FLAG_ACTIVITY_NEW_TASK...

Global site tag (gtag.js) - Google Analytics