2017-12-14 11 views
0

나는 나의 활동 탐색이이전 활동으로 돌아갈 때 finish()를 통해 의도를 보내는 방법은 무엇입니까? > 결과 - -

주요 활동처럼 <을 설정하는 응용 프로그램을 만드는 중이라서> 끝

내 응용 프로그램이 결과 활동 곳의 주요 활동에서 의도을 통해 데이터를 전송한다 결과 활동이 데이터를 계산하고 표시합니다. 결과 활동은 계산 된 결과를 다시 주 활동으로 리턴하거나 조건이 충족되었는지 판별하고 최종 활동을 시작합니다. 최종 활동은 주 활동으로 돌아가서 데이터를 넘기지 않고 신청을 시작할 수 있습니다.

내 문제는 결과 활동에서 주 활동으로 데이터를 효과적으로 보내는 방법을 알아낼 수 없는데, 조건이 충족되면 데이터를 최종 활동으로 보내는 옵션이 있습니다. 연구를하면서 startActivityForResult 메소드를 발견했지만 내 딜레마는 조건이 충족되면 내 결과 활동이 항상 주 활동으로 결과를 반환하지 않을 수 있다는 것입니다.

주 활동 및 결과 활동에 대해 startActivityForResult를 사용하고 조건이 충족되거나 공유 환경 설정을 사용하면이 상황에서 더 나은 옵션이 될 때까지 최종 활동에 대한 새 활동을 시작해야합니까?

+0

이 왜이 세 가지 활동 대신 중 하나를 사용하고 있습니다 :

그런 다음 MainActivity에, 당신은 같은 응답을하여 onActivityResult() 함수를 무시하고 처리 할 수 ​​있나요? – CommonsWare

+0

@CommonsWare 설명해 주시거나 링크를 제공해 주시겠습니까? 나는 그것을 조사해 보았지만, 스스로 구현하거나 충분히 이해할 수있는 충분한 자원을 찾지 못했습니다. – Zac

+0

내가 링크를 제공하기 위해 찾고있는 것이 확실하지 않습니다. 3 가지 활동을 수행하기로 결정했습니다. 나는 이유를 모른다. 그래서 내가 그 질문을했다. 진행 상황에 따라 UI를 업데이트하면 (예 : 조각 스타일을 통해 [마법사 스타일 UI 라이브러리] (https://github.com/Nimrodda/WizarDroid)를 통해) 한 가지 작업으로 모든 작업을 수행 할 수 있습니다. – CommonsWare

답변

1

체크 아웃이 링크를 대신 호출 startActivity를 (의도)의 https://developer.android.com/training/basics/intents/result.html

을, 당신은 전화를해야 : 에 startActivityForResult (의도, requestCode가 (예를 들어, = 2))의 주요 활동에서.

그런 다음 ResultActivity에서 인 텐트 오브젝트 내의 모든 추가 정보와 정보를 가져야합니다. finish()를 호출하기 전에 setData (requestCode = 2,)로 전화해야합니다.

@Override 
 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
 
    // Check which request we're responding to 
 
    if (requestCode == 2) { 
 
     // Make sure the request was successful 
 

 
    } 
 
}