`
liangoogle
  • 浏览: 273307 次
  • 性别: 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.     } 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics