使用后退按钮从子活动传递字符串

时间:2014-09-06 18:52:48

标签: android-intent

首先,我想道歉,我发现了许多类似于这个问题的答案,但我仍然无法让我的代码正常工作。我想在按下后退按钮后将字符串传递回父活动,然后在edittext中显示该信息。

代码:

(来自父母活动)

@Override
    public void onClick(View v){

        EditText editText1 = (EditText) findViewById(R.id.editText1);
        EditText editText2 = (EditText) findViewById(R.id.editText2);

        Intent i = new Intent(ComputeActivity.this, AddActivity.class);
        i.putExtra("num1", editText1.getText().toString());
        i.putExtra("num2", editText2.getText().toString());
        startActivityForResult(i, 0);
    }
}); 
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);

      if (data == null) {
        return;
      }
        result = data.getExtras().getString("string_result");

      editTextResult.setText(result);
   }

(来自儿童活动)

@Override
public void onBackPressed(){
  super.onBackPressed();
  Intent data = new Intent();
  data.putExtra("string_result", result);
  setResult(RESULT_OK, data);
  finish();

}

1 个答案:

答案 0 :(得分:2)

我解决了!!!试试这个:

在你的第一个活动中:

//To get ArrayList of ImagePath to Gallery_MainActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 300 && resultCode == RESULT_OK && data!=null){

          if(data.getStringArrayListExtra("galleryToValidar") !=null)
          {
              this.imagePath=data.getStringArrayListExtra("galleryToValidar");
              Toast toast = Toast.makeText(this, "[ "+data.getStringArrayListExtra("galleryToValidar").size()+" ]:Imagenes guardadas", Toast.LENGTH_SHORT); toast.show();
          }

    else
        {
           Toast toast = Toast.makeText(this, "No hay imagenes", Toast.LENGTH_SHORT); toast.show();
        }

    }
 }

在第二项活动中:

/ **      *使用后退按钮传递意图      * /

public void onBackPressed(){

    if(imagePath.size()!=0)
    {

        for(int i=0; i<imagePath.size(); i++){
            auxImage.add(imagePath.get(i));
        }
    }

    Intent myImage = new Intent();
    myImage.putStringArrayListExtra("galleryToValidar",auxImage);

    setResult(Activity.RESULT_OK,myImage);

    finish();
    super.onBackPressed();

}

这段代码完美无缺,祝你好运!