2014-04-02 2 views
0

제 질문은 프로젝트를 재구성하는 방법에 대해 더 자세히 논의하거나이 상황을 해결하는 것입니다.onActivityResult - 중첩 된 액티비티 사용하기

다음 스키마가 있습니다. MainActivity, TabHost, 각 기존 탭에 대한 활동로드. FirstTabActivity

Intent intent = new Intent(CreateCommentsActivity.this, SelectPicturesActivity.class); 
startActivityForResult(intent, 1); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    super.onActivityResult(requestCode, resultCode, data); 

    Log.i("TAG", "onActivityResult");  
} 
: 그래서 첫 번째 탭 메신저 통화를 위해 /를 FirstTabActivity를 열고,이 FirstTabActivity가 (일부 사진을 선택하기 위해) 다른 액티비티를 호출하는 것은이 내가이 원하든입니다 GalleryPickActvity

라고

GalleryPickActvity

Intent intent = new Intent(GalleryPickActvity.this, 
          FirstTabActivity.class); 
setResult(Activity.RESULT_OK, intent); 
finish(); 

방법 : onActivityResult은 결코 호출되지 않습니다. 메신저가 중첩 된 활동을 사용하므로 결과가 손실됩니다. 내가 어떻게이 문제를 해결할 수

  1. 에도이 아니 가장 좋은 방법 (- -> 활동> 활동 활동) :

    그래서 나는이 개 질문이?

  2. 이런 상황을 구조화하는 가장 좋은 방법은 무엇입니까? 나는 모든 탭 활동에 국가를 유지할 필요가 있으며, 나는 그것을 활동으로 (지금의 방식대로) 할 수 있습니다. 당신은 모든 올바른 것을 알기 위해 몇 가지 매개 변수 만 startActivity()를 사용할 수있는 세 번째 활동을 열려는 잘 경우

답변

0

. 그 세 번째 활동에서 startActivityForResult(...)을 호출하지 않고도 세 번째 활동에서 onActivityResult()을 사용해야하는 특별한 이유가 있습니까?

+0

startActivityForResult() 및 onActivityResult()를 호출하는 활동이 두 번째 활동입니다. – Bugdr0id

+0

그러면'setResult (Activity.Result_OK);를 사용하십시오. finish();'이전 활동으로 돌아 가려는 경우 의도가 필요하지 않습니다. – zozelfelfo

+0

하지만 onActivityResult() 메서드는 호출되지 않습니다. – Bugdr0id