向下一个活动传递数据

FirstActivity中给SecondActivity传递一个字符串

  1. FirstActivity中给Intent对象添加数据

     
    xxxxxxxxxx
    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    intent.putExtra("data_key", "data_value");
    startActivity(intent);
  2. SecondActivity获取数据

     
    xxxxxxxxxx
    Intent intent = getIntent();
    String data = intent.getStringExtra("data_key"); // now data is "data_value"

    getIntent()方法是获取启动该活动的Intent对象

    若要获取int类型数据,则使用getIntExtra()方法,以此类推

返回数据给上一个活动

  1. FirstActivity中按钮:

     
    xxxxxxxxxx
    @override
    public void onClick(View v) {
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivityForResult(intent);
    }
  2. SecondActivity中:

     
    xxxxxxxxxx
    Intent intent = new Intent();
    intent.putExtra("extra_data", "Hello 1stActivity");
    setResult(RESULT_OK, 1);    // setResult(resultCode, requestCode)

    由于使用startActivityForResult()来启动SecondActivity,则在SecondActivity销毁后会自动调用上一个活动的onActivityResult()方法

  3. FirstActivity中:

     
    AخA
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case 1:
                if (resultCode == RESULT_OK) {
                    Log.d("mytag", data.getStringExtra("extra_data"));
                }
                break;
        }
    }