首页 > 代码库 > Android 两个Activity间的传值与回传值
Android 两个Activity间的传值与回传值
MainActivity.java
Intent intent = new Intent();
intent.putExtra("message", "传到SecondActivity的值");
intent.setClass(MainActivity.this, SecondActivity.class);
/*
* 如果希望启动另一个Activity,并且希望有返回值,则需要使用startActivityForResult这个方法,
* 第一个参数是Intent对象,第二个参数是一个requestCode值,如果有多个按钮都要启动Activity,则requestCode标志着每个按钮所启动的Activity
*/
startActivityForResult(intent, 1000);
/**
* 所有的Activity对象的返回值都是由这个方法来接收
* requestCode: 表示的是启动一个Activity时传过去的requestCode值
* resultCode:表示的是启动后的Activity回传值时的resultCode值
* data:表示的是启动后的Activity回传过来的Intent对象
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1000 && resultCode == 1001)
{
String result_value = http://www.mamicode.com/data.getStringExtra("result");
}
}
SecondActivity.java
在onCreate方法中接收,其他方法中也能接收
String mainString = getIntent.getStringExtra("message");
// 重写返回事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent();
intent.putExtra("result", result);
/*
* 调用setResult方法表示我将Intent对象返回给之前的那个Activity,这样就可以在onActivityResult方法中得到Intent对象,
*/
setResult(1001, intent);
return true;
}
return super.onKeyDown(keyCode, event);
}
Android 两个Activity间的传值与回传值