메인 액티비티에 서 프래그먼트 객체 가져오기
getSupportFragmentManager() 함수를 사용
findFragmentById() 로 객체를 가져옵니다
프래그먼트 간 이동
NavHostFragment.findNavController(FirstFragment.this)
.navigate(R.id.action_FirstFragment_to_SecondFragment);
데이터를 보내는 경우 아래
Bundle bundle = new Bundle(); //인텐트 역 번들
bundle.putInt("type",v.getId());
bundle.putString("name",sName);
NavHostFragment.findNavController(FirstFragment.this)
.navigate(R.id.action_FirstFragment_to_SecondFragment, bundle);
//번들도 매개변수로 넣어줌
이전으로 이동하며 스택제거
public void onClick(View v) {
//기능 : 취소버튼을 누르면 1번 프래그먼트로 이동
NavController navCon = NavHostFragment.findNavController(SecondFragment.this);
navCon.popBackStack();
//백버튼과 같은 효과 (백스택을 꺼내고 지금 세컨드는 제거)
}
이동하며 스택 제거
public void onClick(View v) {
//기능:클릭시 이전화면으로 넘어가도록
NavHostFragment.findNavController(ThirdFragment.this).popBackStack(R.id.FirstFragment,false);
//false 의미는 돌아가는 펄스트 프래그먼트도 백스텍에서 제거하느냐(아니라 false)
}
백버튼으로 이동하는 프래그먼트 도 스택을 지워줘야 함
//백버튼 수정: 액티비티를 통해 백버튼 이벤트 처리기를 가로채야함
//애드컬백은 등록
// true는 백버튼 처리가 처음부터 유효한지 중간 세팅부터 유효한지 여부
requireActivity().getOnBackPressedDispatcher().addCallback(new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
NavHostFragment.findNavController(ThirdFragment.this).popBackStack(R.id.FirstFragment,false);
}
});
네비게이션
아래 속성들을 통해 이동하는 액션의 백스텍 설정, 애니메이션 설정,목적지 설정 등이 가능하다
<action android:id="@+id/action_matzipMakerFragment_to_mapsFragment" app:destination="@id/mapsFragment" app:popUpTo="@drawable/whatis_welcome" app:popUpToInclusive="" app:popEnterAnim="" app:popExitAnim="" app:enterAnim="" app:exitAnim=""/>
1) popUpToInclusive : true
- popUpTo으로 설정한 fragment까지 백스택에서 제거를 하고, popUpTo으로 설정한 fragment의 이전 fragment로 이동을한다.
2) popUpToInclusive : false
- popUpTo으로 설정한 fragment 이전까지만 백스택에서 제거를 하고, popUpTo으로 설정한 fragment로 이동한다.
출처: https://thinkerodeng.tistory.com/290 [Thinker]
프래그먼트 내에서 인텐트 이동하기
//getApplicationContext()는 프래그먼트에선 getActivity() Intent intentSNS = new Intent(getActivity(),snsActivity.class); //intentSNS.putExtra("이름","데이터값"); //보낼 데이터가 있는경우 사용 startActivity(intentSNS);
추가 로 볼 글:
'App > Android' 카테고리의 다른 글
안드로이드 아이콘 파일 만들기 (0) | 2021.09.21 |
---|---|
인텐트 (0) | 2021.09.21 |
안드로이드 support 라이브러리 추가하는법 (0) | 2021.09.20 |
안드로이드 네이게이션 drawer 액티비티 사용법을 정리해보자 (0) | 2021.09.18 |
[공유]안드로이드 이벤트 처리방식 (0) | 2021.06.28 |
댓글