두 가지 작업 A, B간에 데이터를 전달할 때 두 가지 시나리오가 있습니다.
- 작업 A는
- 활동 B가 난에 제안 두 경우에 setResult
를 사용 종료시 활동 (A)에 데이터를 리턴하려고 (텐트 startActivity를 통해) 활동 B에 데이터를 전달하고자 사용할 여분의 키에 대한 일부 정적 변수를 만듭니다.
예를 들어
당신은 내가 아마 할 것이다 A와 B에서 키 "등급"을 사용하여 정수를 통과해야하는 경우
class A extends Activity {
public static final String RESULT_STATUS = "RESULT_STATUS";
// Whatever ....
public void startB(int rating) {
Intent toStart = new Intent(this, B.class);
toStart.putExtra(B.EXTRA_RATING, rating);
startActivityForResult(toStart, 0);
}
public void onActivityResult(int requestCode /* 0 in our case */, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
String returnedStatus = data.getStringExtra(RESULT_STATUS);
// Whatever ....
}
}
class B extends Activity {
public static final String EXTRA_RATING = "EXTRA_RATING";
public void onCreate(Bundle b) {
// Whatever ....
int rating = getIntent().getIntExtra(EXTRA_RATING,0);
}
// Whatever ....
public void returnDataAndFinish(String status) {
Intent result = new Intent();
result.putExtra(A.RESULT_STATUS, status);
setResult(RESULT_OK, result);
finish();
}
}