Android getStringExtra()在onActivityResult()中失败

Android getStringExtra()在onActivityResult()中失败,android,android-intent,Android,Android Intent,我需要将其他数据从意图传输到调用活动。 基本活动执行“startActivityForResult()” 嵌套活动设置结果并将其他数据放入单击侦听器: public void onClick(View v) { setResult(LOGIN_RESULT_IN); LoginActivity.this.getIntent().putExtra("username", userStr); LoginActivity.this.getIntent().putExtra

我需要将其他数据从意图传输到调用活动。 基本活动执行“startActivityForResult()”

嵌套活动设置结果并将其他数据放入单击侦听器:

public void onClick(View v) {
     setResult(LOGIN_RESULT_IN);
     LoginActivity.this.getIntent().putExtra("username", userStr);
     LoginActivity.this.getIntent().putExtra("password", passStr);

     LoginActivity.this.finish();
}
调用活动通过以下方式检查数据:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    preferences.username = data.getStringExtra("username");
    preferences.password = data.getStringExtra("password");
}
然而,这个返回总是空的。为什么不起作用?

试试这段代码

public void onClick(View v) {

      Intent intent=new Intent();
      intent.putExtra("username", userStr);
      intent.putExtra("password", passStr);

      setResult(LOGIN_RESULT_IN,intent);
     LoginActivity.this.finish();
}


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    preferences.username = data.getStringExtra("username");
    preferences.password = data.getStringExtra("password");
}

就这样,谢谢!我不会像你建议的那样创建一个新的意图对象,但会将现有的对象交给你,但这并不重要。我想知道为什么我需要用setResult()明确地设置一个Intent,为什么默认情况下它不转发现有的Intent?好的,在不创建新的Intent LoginActivity的情况下使用下面的代码不是问题。this.getIntent().putExtra(“username”,userStr);LoginActivity.this.getIntent().putExtra(“密码”,passStr);setResult(LOGIN_RESULT_IN,this.getIntent());LoginActivity.this.finish();