首页 > 代码库 > 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间的传值与回传值