문제점
Fragment에서 startActivityForResult()를 통해 requestCode 101로 새 액티비티로 이동한 뒤 복귀했더니
정상적으로 intent에 저장된 데이터는 받아왔으나 requestCode가 65673과 같이 이상한 숫자로 넘어옴.
또한 onActivityResult() 함수가 Fragment에 없음.
해결 방법
public void moveToReviewWrite(){
Intent intent = new Intent(MainActivity.this, ReviewWriteActivity.class);
startActivityForResult(intent, REQUESTCODE_REVIEW_WRITE);
}
먼저 MainActivity에 메소드를 만들어 fragment에서 호출 시 이동하도록 구현.
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUESTCODE_REVIEW_WRITE){
NavHostFragment frag = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
if(frag.getChildFragmentManager().getFragments().get(0) instanceof MovieDetailFragment){
MovieDetailFragment movieDetailFragment = (MovieDetailFragment) frag.getChildFragmentManager().getFragments().get(0);
movieDetailFragment.getContentFromReviewWrite(data);
}
}
}
onActivityResult() 또한 MainActivity에서 구현하여 requestCode 확인 후 데이터만 fragment로 전송.
이렇게 구현하니 번거롭지만 정상적으로 requestCode가 들어오는 것을 확인함.
fragment가 Activity 위에 떠있더라도 requestCode는 달라지는 것으로 추정.
'Android > Errors' 카테고리의 다른 글
OptionMenu의 item에 actionLayout 지정 시 onOptionsItemSelected() 미작동 (0) | 2020.05.08 |
---|---|
No Network Security Config specified, using platform default (1) | 2020.05.03 |
Fragment에서 ViewPager 사용 시 문제점 (0) | 2020.04.20 |
Navigation Drawer Activity에서 Fragment 전환 (0) | 2020.04.20 |
Drawer Navigation 사용 시 menu의 group 나누기 (0) | 2020.04.20 |