使用startActivityForResult回传数据

如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult。

  1. 打开新Activity

    Intent intent = new Intent();
    intent.setClass(this,TargetActivity.class);
    startActivityForResult(intent,0);
  2. 回传

     --------------利用Intent回传---------------

    Intent intent = new Intent(); //也可以使用原来的Intent
    intent.putExtra("Key","Value");
    setResult(RESULT_OK, intent);
    finish();

     -------------利用Bundle回传----------------

    Intent intent = new Intent(); //也可以使用原来的Intent
    Bundle bundle = new Bundle();
    bundle.putString("key","Value");
    intent.putExtra(bundle);
    setResult(RESULT_OK, intent);
    finish();
  3. 获取回传数据

    回传

    override onActivityResult

     --------------利用Intent回传---------------

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            switch (resultCode){
                case Activity.RESULT_OK:
                    String strContent = data.getStringExtra("key"); //return Value
                    break;
            }
        }

     -------------利用Bundle回传----------------

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            switch (resultCode){
                case Activity.RESULT_OK:
                    Bundle bundle = data.getExtras();
                    String strContent = bundle.getString("key); //return Value
                    break;
            }
        }



你可能感兴趣的:(使用startActivityForResult回传数据)