APP/안드로이드프로그래밍

안드로이드 Fragment

헬로월드! 2020. 3. 18. 14:00

- 액티비티: 인텐트를 이용하여 액티비티 매니저가 새로운 액티비티를 띄울 수 있음

독립적으로 운영하므로 직접적으로 접근할 수 없다.

- 프래그먼트: 부분화면이기 때문에 액티비티 위에서 동작한다.

액티비티 안에서 프래그먼트 매니저가 메소드 호출을 통해 뭔가 요청하여 프래그먼트를 띄우곤 함

(프래그먼트에서는 인텐트를 사용할 수 없음)

하나의 액티비티에 하나의 프래그먼트를 전체 화면으로 보여주면 시스템과 관계없이 전체 화면을 전환하는 효과를 만들 수 있음

액티비티는 무거운 반면, 프래그먼트는 리소스가 적게 전환이 가능하기 때문에 장점이다!! (보안 면에서도 좀 더 나은 장점!! )

프래그먼트는 액티비티 위에 올라가야 프래그먼트로 동작함

인플레이션을 위한 별도의 콜백 메소드를 제공함

>> 추가하는 방법 : xml 파일에 or 자바 소스 파일에

1) 우선 Empty Activity 화면을 만들어준다.

< 왼쪽에 있는 화면색을 누르면 오른쪽에는 그 색깔과 똑같은 화면이 뜨도록 해주는 화면을 만들 것이다. >

완성작

 

red ,green,blue 클릭시

 

 

2)activity_main.xml 에 메인 화면에 보일 화면을 구성해준다.

 

activity_main.xml

왼쪽에는 fragment 로 따로 화면xml 을 만들어서 붙여줄거다

 

오른쪽 화면은 fragment 에 들어갈 화면으로 왼쪽 xml 파일에서 fragment name에 파일이름을 추가해준다.

3) 부분화면을 만들어주자! 

세 개의 뷰를 만들어서 각각 id 를 만들어준다. id 가 있어야 클릭을 받았을 때 동작할 수 있으니까!

각각 색깔을 클릭했을 때 오른쪽 부분화면에 떠야하니까 색깔 파일을 하나씩 만들어준다

red,blue,green 파일각각 만들기

만들고 inflate 시켜준다 

red,blue,green 모두 .java 파일을 만들어 inflate 시켜줘야한다.

4) 이제 만든 부분화면을 2)화면의 fragment 자리에 붙여주기 + 각각의 뷰 클릭리스너 만들기  

클릭리스너는 인터페이스를 이용해보자! 

OnColorButtonListener.java 의 인터페이스 파일을 하나 만들어준다.

LeftFragment.java

OncreateView 에서 inflate 시켜준다! 

여기서 각각의 뷰는 클릭을 받아 동작해야하므로 OnClickListener 를 이용해야한다!

LeftFragment.java

뷰를 클릭했을 때 id를 받아와서 onColorButtonLister 의 메소드를 실행시켜준다.

 

 

6) 이제 MainActivity 에서 처리해준다

MainActivity.java

onColorButtonListener를 implements 하여 onColorClick 메소드에서 

숫자 0 이면 red를 1이면 green 을 2이면 blue 화면을 만들어준다.

getSupportFragmentManager().beginTransaction().replace() 를 이용해서!! 그럼끝~!