有返回值的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.     } 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值