Android:上一个活动的额外值为空

Android:上一个活动的额外值为空,android,android-intent,Android,Android Intent,我正试图将一些信息发送回我的主要活动,但该值始终为空。我知道我的第二个活动(传递信息的那个活动)中的信息不是空的,因为我已经打印出来了 以下是我所拥有的: 主要活动: Intent i = new Intent(this, 2ndActivity.class); startActivity(i); // startActivityForResult(i, 0); I have tried this too, but same result on

我正试图将一些信息发送回我的主要活动,但该值始终为空。我知道我的第二个活动(传递信息的那个活动)中的信息不是空的,因为我已经打印出来了

以下是我所拥有的:

主要活动:

    Intent i = new Intent(this, 2ndActivity.class);
       startActivity(i);
      //  startActivityForResult(i, 0); I have tried this too, but same result
        onActivityResult(1, RESULT_OK, i);
    }

//allow to receive info from 2nd activity
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
           ArrayList<String> list= data.getStringArrayListExtra("info");
            if(list== null)
                System.out.println("ITS NULL\n.\n.");
            else
                System.out.println("ITS ALL GOOOD!\n.\n.");
        }
    }
}
    String boobis = getIntent.getStringExtra("STRINGVARIABLENAME"); //Has to be the same as above

在开始活动之前,请执行以下操作:

    i.putExtra("STRINGVARIABLENAME", stringvalue);
并在第二个活动中这样做:

    Intent i = new Intent(this, 2ndActivity.class);
       startActivity(i);
      //  startActivityForResult(i, 0); I have tried this too, but same result
        onActivityResult(1, RESULT_OK, i);
    }

//allow to receive info from 2nd activity
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
           ArrayList<String> list= data.getStringArrayListExtra("info");
            if(list== null)
                System.out.println("ITS NULL\n.\n.");
            else
                System.out.println("ITS ALL GOOOD!\n.\n.");
        }
    }
}
    String boobis = getIntent.getStringExtra("STRINGVARIABLENAME"); //Has to be the same as above

现在,您可以在任何地方使用该变量。

在您的第一个活动中,为什么要手动调用onActivityResult?你不应该那样做。您只需调用startActivityForResult(i,0),然后等待第二个活动完成,onActivityResult将自动被调用。请求代码需要与您在startActivityForResult中传递的代码匹配,在本例中为0。

Replace

  ` startActivity(i); 
  //  startActivityForResult(i, 0); I have tried this too, but same result 
    onActivityResult(1, RESULT_OK, i); `

startActivityForResult(i,1)

应该有用