2
Intent에서 호출하는 활동으로 추가 데이터를 전송해야합니다. 기본 활동은 "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();
}
호출 활동과 데이터를 확인합니다. 왜 작동하지 않습니까?
을 시도! 당신이 제안한 것처럼 새로운 인 텐트 오브젝트를 생성하지는 않지만, 기존의 오브젝트를 넘겨 주지만, 실제로 중요하지는 않습니다. 왜 내가 명시 적으로 setResult()를 사용하여 인 텐트를 설정해야하는지 궁금하다. 왜 기본적으로 기존의 것을 전달하지 않습니까? –
좋아, 새로운 의도를 만들지 않고이 코드를 사용하면 문제가되지 않습니다. LoginActivity.this.getIntent(). putExtra ("username", userStr); LoginActivity.this.getIntent(). putExtra ("password", passStr); setResult (LOGIN_RESULT_IN, this.getIntent()); LoginActivity.this.finish(); –