[Android] 프래그먼트(Fragment) - (1)설명, (2)첫번째 방법(xml레이아웃에 추가하는 방법)

[Android] 프래그먼트(Fragment) - (3)두번째 방법(java소스 코드를 이용해서 추가하는 방법)

[Android] 프래그먼트(Fragment) - (4)프래그먼트 2개를 번갈아가며 보여지도록 만듬

[Android] 프래그먼트(Fragment) - (5)프래그먼트 안에 있는 버튼을 눌렀을 때,다른 프래그먼트를 띄우는 방법

[Android] 프래그먼트(Fragment) - (6)실습(왼쪽의 리스트에서 하나 선택하면 오른쪽에 이미지 보기)

[Android] 프래그먼트(Fragment) - (7)데이터 이동(간단 정리) ★

 

 

 

 

 

 

 

 

 

 

 

프래그먼트 안에 있는 버튼을 눌렀을 때,

다른 프래그먼트를 띄울 거다.

 

fragment_main.xml에 있는 버튼을 클릭 했을 때,

fragment_menu.xml을 띄울거다.

근데, 프래그먼트는 독립적으로 구성되도록 만들었기 때문에,

직접접근하는 것을 권장하지 않는다.

그래서, fragment_menu.xml을 띄울려고 한다면,

액티비티 쪽으로 요청을해서 띄워야합니다.

 

 

 

 

1. 일딴 설명

onAttach()를 해서 액티비티에 올라와야 fragment로써 동작을 한다.

그래서, onAttach()로 올라 왔을 때,

getActivity()를 하게 되면, MainActivity.java를 참조 할 수 있게 된다.(이때부터 액티비티에 올라와 있는 거니깐)

 

onAttach()에

activity = (MainActivity)getActivity(); 를 한다면  액티비티를 참조해서

MainActivity activity;에 할당을 할 수 있게 됩니다.

 

onDetach()에서는 더이상 참조가 안되니깐 null값 준다.

activity = null;

 

프래그먼트에서는 액티비티 쪽으로 요청을 보내야 한다고 했죠!!!

근데 요청을 인텐트에 넣어서 보낼 수가 없다.! 이건 시스템이 아니기 때문에(이건 액티비티니깐)

그래서 MainActivity.java에다가 메소드를 하나 만들 꺼다.

onFragmentChange() 만듬.

3번 설명 보기

 

 

 

 

 

2. 결과

 

 

 

3. 설명

다른 코드들은 이전 코드랑 다 같습니다.

- MainActivity.java

 

- MainFragment.java

- onAttach() <- 프래그먼트가 액티비티에 올라오는 그 순간

 

- MenuFragment.java 도 똑같이 MainFragment.java처럼 해주고 index를 0으로 바꾸고 하면 다른 프래그먼트를 띄울 수가 있다.

 

 

 

 

 

 

 

 

4. - 처리과정 -

 

1.메소드 선언(MainActivity.java 에다가)  후에   ->  2.메소드 호출(MainFragment.java 여기서) 해서 사용 하면 됩니다.

 

 

 

 

프래그먼트에서   --------> 다른 프래그먼트를 띄울 때는,

 

프래그먼트의 상위 액티비티에서 메소드 선언("1.메소드 선언(MainActivity.java 에다가)  후에")하고 

 

프래그먼트("2.메소드 호출(MainFragment.java 여기서) 해서 사용 하면 됩니다.")에서

메소드(액티비티안의 코드)를 호출(사용)하여 액티비티로 요청을 해서 다른 프래그먼트를 띄운다.