startActivityForResult中请求码和响应码
利用startActivityForResult()方法启动activity可以在获取该activity关闭时的返回值,
Intent intent=new Intent(this,NewActivity.class);
//第二个参数用来标识是从哪个activity开始跳转的
startActivityForResult(intent,0);
当新的Activity关闭时,会触发主Activity的
onActivityResult事件。
新的Activity 中使用setResult(int resultCode,Intent intent)方法,向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。
1.请求码
在一个业务中可能在两个按钮被单击事件中打开同一个Activity,但我们在onActivityResult事件中如何判断是哪个按钮打开了新的Activity?请求码就是为解决这个问题的,那么我们打开新的Activity时应该使用startActivityForResult(intent, 1);。其中的第二个参数就是请求码。
onActivityResult事件:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
}
在onactivityResult事件中,通过判断requestCode更可知道被关闭Activity是通过哪个位置打开的。
2.结果码
在一个业务中可能要打开多个不同的Activity,那关闭Activity时在onactivityResult事件中我们如何知道关闭的是哪一个Activity呢?结果码就是为解决这个问题的,那么我们打开新的Activity时应该使用setResult(2, intent);或在关闭Activity前调用ActivityObj.setResult(2);。其中的第一个参数就是结中 在onactivityResult事件
,通过判断resultCode更可知道是哪个Activity被关闭了。
这里写代码片