라고 onActivityResult를 내가 응용 프로그램의 폴더 선택기 부분에 다음과 같은 활동 순서가 있습니다한 번만
활동 시작 B합니다. 은 사용자가 폴더 트리에 더 깊이 들어갈 때 스택되는 인스턴스를 시작합니다. B의 인스턴스 (폴더를 선택 함)가 완료 될 때마다 그 필드와 모든 앞에 B이 완료되고 이 다시 표시되고 전파 된 결과가 표시되어야합니다. 사용자가 역 추적하면 앞의 B이 완료되지 않아야합니다. 사용자는 폴더 하위 트리간에 앞뒤로 이동할 수 있어야합니다.
나는 모두 에서 B에 다음 B의 새 예를 들어,에 startActivityForResult를 사용하여 이러한 목표를 달성하기 위해 노력하고있어. 사용자가 인스턴스 B을 완료하면 setResult를 사용하고 이전 인스턴스의 onActivityResult 메소드에서이를 확인하려고합니다. 결과가 RESULT_OK 인 경우 결과를 다시 설정하고 모든 인스턴스가 계단식 시퀀스로 완료되고 A이 다시 표시 될 때까지 결과를 다시 표시합니다. 시퀀스만큼 I은 이동으로 작동= "B (1) ="B (2) = "B (3) 마침 상기 B에 되돌아없이 부 .
단, I는 = "B (1) ="B (2) => 다시 B 에 가면 (1) = "B (3) 및 마무리하여 onActivityResult B (1) B (2)에서 처음으로 돌아올 때 B (3)에서 끝낼 때만 나중에 다시 돌아올 때 B (1)으로 호출됩니다. B (1)은 B (3)에서이 순서로 돌아갈 때 간단히 다시 시작됩니다. 계단식 마무리 시퀀스가 끊어집니다.
왜 onActivityResult는 한 번만 호출 되는가 B (1)? 어린이 활동이 결과를 설정하고 마칠 때마다 호출되어서는 안됩니까?
: 최종 B 결과를 받기Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent, RequestCodes.ActivityB);
:
=== 활동 : : 첫 번째 B 인스턴스를 시작
여기
는 일부 코드입니다@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
...
}
}
=== 활동 B :
자체에서 새 자식에게 B 시작 :
Intent intent = new Intent(ActivityB.this, ActivityB.class);
startActivityForResult(intent, RequestCodes.ActivityB);
결과를 설정 폴더를 선택할 때 : 아이 받기
Intent result = new Intent();
result.putExtra(...);
setResult(Activity.RESULT_OK, result);
finish();
을 B 각 학부모의 결과 B (단 B (1) 어떤 이유에서 처음이라고 함) 예 : 미리
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
setResult(Activity.RESULT_OK, data);
finish();
}
}
감사합니다.
마지막 방법으로 대신'setResult (..., data)'를 입력해야합니다. 오타 또는 버그입니까? –
이것은 오타입니다. 예, 코드의 데이터입니다. 감사. – Johe