/** * Indent传值,第一个页面传值 * putExtra() * 第一个参数:键(key) * 第二个参数:值(value) */ String data = "Hello Second"; Intent intent = new Intent(FirstActivity.this, SecondActivity.this); intent.putExtra("extra_data", data); startActivity(intent);
// 取值 Intent intent = getIntent(); String data = intent.getStringExtra("extra_data");
反向传值:
第一个页面:
/** * 接收第二个页面传过来的值 * startActivityForResult() * 第一个参数:Intent * 第二个参数:请求码,用于在之后的回调中判断数据的来源 */ Intent intent1 = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent1, 1);
/** * @param requestCode 启动活动时传入的请求码 * @param resultCode 在返回数据时传入的处理结果 * @param data 携带返回的Intent */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case 1: if (resultCode == RESULT_OK){ String returnData = data.getStringExtra("data_return"); Log.d("FirstActivity", returnData); } break; default: break; } }
第二个页面:
自定义的返回
Intent intent = new Intent(); intent.putExtra("data_return", "Hellow FirstActivity"); /** * 专门用于向上一个活动返回数据的 * 第一个参数:用于向上一个活动返回处理结果,一般只用RESULT_OK和RESULT_CANCELED * 第二个参数:把带有数据的Intent传递回去,调用finish()销毁页面 */ setResult(RESULT_OK, intent); finish();
系统的返回: