2
インテントから呼び出し側のアクティビティに追加データを転送する必要があります。 基本アクティビティは "startActivityForResult()"です。onActivityResult()でgetStringExtra()が失敗する
ネストされたアクティビティが結果を設定し、クリックリスナーで追加データを置く:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
preferences.username = data.getStringExtra("username");
preferences.password = data.getStringExtra("password");
}
しかし、このリターンは常にnull:
public void onClick(View v) {
setResult(LOGIN_RESULT_IN);
LoginActivity.this.getIntent().putExtra("username", userStr);
LoginActivity.this.getIntent().putExtra("password", passStr);
LoginActivity.this.finish();
}
呼び出し元の活動はしてデータをチェックします。それはなぜ機能しないのですか?
おかげで、このコードを試してみてください!提案したように新しいIntentオブジェクトを作成するのではなく、既存のオブジェクトを継承しますが、実際には問題はありません。なぜ私は明示的にsetResult()を使ってインテントを設定する必要があるのだろうか、なぜデフォルトでは既存のものを転送しないのだろうか? –
OK、新しいインテントを作成せずにこのコードを使用しても問題ありません。LoginActivity.this.getIntent()。putExtra( "username"、userStr); LoginActivity.this.getIntent()。putExtra( "password"、passStr); setResult(LOGIN_RESULT_IN、this.getIntent()); LoginActivity.this.finish(); –