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);
- }
- }
分享到:
相关推荐
Activity跳转之startActivityForResult
关于startActivity被大家忽略的 Fragment中的startActivityForResult方法
1、创建一个自己的Activity 2、启动activity-显示启动和隐式启动: 3、隐式启动自己的activity 4、获取隐启动传递过来的data数据 5、显示启动传递数据 ...7、开启activity获取返回值-startActivityForResult:
很多时间我们需要的不仅只是startActivity或是finish,而是在finish的时候,把在第二个界面的值回传给第一个界面。这个程序就是用来解决这样的问题的。
一种 startActivityForResult 更简单流程
Android之Intent通过startActivityForResult方法启动新Activity
startActivityForResult过时.md
使用startActivityForResult回传数据
介绍了StartActivityForResult的运用,并总结了一些问题及答案,可供初学者参考,代码无误,放心运行!
一个startActivityForResult的简单demo
在Activity的四种不同的启动模式下,对于startActivityForResult方法的影响。什么时候可以收到回传数据。
定义了4个Activity,主activity跳转到其他2个时附带String good,第二个在接收到数据后将String +"boy"后返回给主Activity并Toast;第三个在接收到数据后将String +"boy&girl"后返回给主Activity并Toast。第4个采用...
使用StartActivityForResult进行Activity跳转传值的小例子
An Rx wrapper for receiving results from startActivityForResult() as an Observable. Download To launch from an Activity : compile 'com.natewickstrom.rxactivityresult:rxactivityresult:0.1.0-rc3' To ...
基于RxPermissions框架思想,在使用startActivityForResult可以不重写onActivityResult回调
studio中找到直接运行的项目,需要在根目录的settings.gradle中添加进去即可gradient_learn ---梯度属性学习,包括静态xml设置和动态java代码添加dynamic_layout_learn / bouncetest ---动态布局学习startactivity_...
startActivityForResult
startActivity(intent); Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_SETTINGS);//管理应用程序界面 context.startActivity(intent); 或者用以下方法(3.0以前的版本可以用此方法) ...
3个方法的介绍和使用 startActivityForResult(Intent intent, int requestCode ) onActivityResult(int requestCode ,int resultCode, Intent data) setResult(int resultCode,intent intent)