Android getStringExtra()在onActivityResult()中失败
我需要将其他数据从意图传输到调用活动。 基本活动执行“startActivityForResult()” 嵌套活动设置结果并将其他数据放入单击侦听器: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
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();