Fragment는 화면이 커지는 Tablet이 생겨나면서 한 화면에 다양한 레이아웃과 Widget등을 표현하기 위해서 생겨났다.
여러 화면에서 재사용이 가능하다.
자체 생명 주기를 가지고 있다.
동적으로 추가,삭제,교체(FragmentTransaction)가 용이하다.
자체 입력 이벤트를 받는다.
액티비티 실행 중에 추가 및 제거가 가능한 액티비티의 모듈식 섹션이다.
독자적으로 존재할 수 없다.
Activity - Activity 간의 데이터 전달일때 Intent사용
: 데이터 전송, 받기 가능
onCreate : 프래그먼트 호출.
onCreateView :레이아웃을 inflation하고, 위젯들이 하는 이벤트 처리를 한다.
onViewCreated :View가 만들어지고 나서 해야하는 일들과 rest처리는 여기서 한다.
onDestroyView :
onDestroy :
액티비티의 일부분을 교체하는 프래그먼트 방식.
매니저를 통해서 트랜잭션을 얻고 액티비티상에서 처리.
메인 XML에 보통 Frame이라는 레이아웃을 사용해서 Fragment를 띄운다.
Fragment Transaction : 추가,삭제,제거,부착 들을 하는것을 통틀어서 .
add,replace,remove순으로 제일 많이 사용한다.
addtobackstack == 프래그먼트에서 backstack으로 이동하는 것. Activity의 onBackPressed() 와 같다.
add : Fragment를 지정된 레이아웃에 추가하는것
replace : 지정된 레이아웃에 설정되어 있는 Fragment대신 새로운 Fragment를 추가하는것
Fragment가 부착되어있는 액티비티를 오너객체라고한다.
getActivity
getArgument,setArgument : Fragment Transaction을 할 때 번들을 이용해서 처리한다.
getFragmentManager : Fragment Manager를 얻어온다.
startActivity,startActivityForResult : Activity를 구동(동기/비동기)한다.
onActivityResult :
Fragment-Fragment / Fragment - Activity는 Intent사용이 불가능하다.
대신Bundle을 이용한다.
저장과 전달의 차이.
Intent :
어플내 액티비티 간의 데이터를 전달할 때 사용하는 클래스
Bundle :
키와 밸류.
문자열로 된 키와 여러가지의 타입의 값을 매핑하여 저장하는 Map클래스!
savedInstanceState : Bundle 객체로써 액티비티를 중단할때
메서드를 호출하여 임시적으로 데이터를 저장한다. 즉 종료되기 직전의 데이터를 가지고 있으며 , 데이터를 바탕으로 Activity를 다시 생성한다.