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中处理返回的结果和返回的数据:
- protected void onActivityResult(int requestCode, int resultCode,
- Intent data){
- switch (resultCode){
- case RESULT_OK:
- Bundle bundle = data.getExtras();
-
- String string = bundle.getString("second");
-
- updateText(string);
- }
- }
分享到:
相关推荐
`StartActivityForResult`的工作原理是这样的:当一个Activity(我们称之为A)启动另一个Activity(B)时,可以使用`startActivityForResult()`方法而不是普通的`startActivity()`. 在B中执行完某些操作后,可以通过...
`startActivity()`和`startActivityForResult()`的区别在于是否需要返回结果。 此外,Activity的生命周期是Android开发者必须了解的重要概念。包括`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop...
当从一个Activity启动另一个Activity并希望得到返回结果时,我们需要使用startActivityForResult()方法代替普通的startActivity()。下面详细介绍这个过程: 1. 创建Intent 首先,创建一个新的Intent对象,指定目标...
Intent intent = new Intent(StartActivity.this, TargetActivity.class); startActivityForResult(intent, REQUEST_CODE); ``` 这里的`REQUEST_CODE`是一个自定义的整数值,用于在`onActivityResult()`中区分不同的...
对于有返回值的情况,我们可以使用`startActivityForResult()`方法启动Activity。这个方法需要两个参数:Intent和请求码。请求码用于在接收结果时区分不同的调用。 在目标Activity中,我们可以通过`setResult()`...
当你需要在新启动的Activity中执行某些操作并返回结果时,应该使用startActivityForResult()方法,而不是简单的startActivity()。这样,当新Activity完成任务后,可以将结果返回给调用者。 ```java Intent intent...
startActivity(intent); ``` 2. 启动带有返回结果的Activity:若需从目标Activity返回结果,可以在启动时添加`startActivityForResult()`,并在目标Activity中使用`setResult()`设置返回值,最后调用`finish()`结束...
- 使用`startActivityForResult()`启动Activity并在该Activity结束时通过`onActivityResult()`方法接收返回的数据。 - 示例代码:`startActivityForResult(intent, SUBACTIVITY1);` - 在`onActivityResult()`中...
6. **startActivity()和startActivityForResult()**:startActivity()用于无返回值的跳转,而startActivityForResult()则可以在调用者Activity中接收到被启动Activity的结果。 7. **finish()方法**:调用Activity的...
在`Wh4Activity`中,当用户点击"按钮1",会创建一个新的`Intent`实例并设置目标类为`Activity1`,然后调用`startActivity()`启动`Activity1`。 - 对于"按钮2",除了设置目标类为`Activity2`外,还会使用`putExtra()...
为了返回上一个Activity,可以使用finish()方法关闭当前Activity,或者使用startActivityForResult()进行有结果的跳转,并在目标Activity中通过setResult()设置返回值,然后在源Activity的onActivityResult()方法中...
startActivityForResult用于两个activity之间的数据传递,Activity1传值给Activity2,Activity2再返回值给Activity1。 第一步:Activity1中:startActivityForResult(Intent intent, Int requestCode) Intent ...
创建Intent时,需要传入当前的ApplicationContext和目标Activity的Class对象,然后调用startActivity(Intent)方法启动Activity。例如在IntentDemo示例中,IntentDemoActivity通过Intent启动NewActivity,需在...
然后,在 IntentOneDemoActivity 中,我们创建了一个 Intent 对象,并将其传递给 startActivity() 方法,以便启动 IntentTwoDemoActivity。 第二种方式:从一个 Activity 传值到另一个 Activity 在 Android 中,...
本文实例讲述了Android编程中...startActivity(intent) 2、有返回值 startActivityForResult(intent,requestCode); onActivityResult(int requestCode,int resultCode,Intent data) setResult(resultCode,data); FAc
- **startActivity(Intent intent)**:无返回值,启动新的Activity并跳转,不会接收新Activity的结果。 - **startActivityForResult(Intent intent, int requestCode)**:启动新Activity并期望收到结果,通过重写...
首先,理解`startActivityForResult`的核心概念:当我们需要在启动一个新Activity时获取返回值,就需要使用`startActivityForResult`而不是`startActivity`。通过`startActivityForResult`,我们可以启动一个新的...
startActivity(intent); ``` 2. **隐式Intent**: 隐式Intent并不指定具体的目标Activity,而是通过设置Action、Data、Category等元数据,让系统根据这些信息去匹配合适的Activity。这种方式常用于实现跨应用的...
通过new Intent(Context, Class) 创建Intent,然后使用startActivity(Intent) 或 startActivityForResult(Intent, int) 启动Activity。 10. **Intent的Flags**:Intent可以设置各种标志,如FLAG_ACTIVITY_NEW_TASK...