Android 两个Activity间的传值与回传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = 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间的传值与回传值的主要内容,如果未能解决你的问题,请参考以下文章

Android入门第43天-Activity与Activity间的互相传值

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。

C语言的传值与传址调用