- 액티비티: 인텐트를 이용하여 액티비티 매니저가 새로운 액티비티를 띄울 수 있음
독립적으로 운영하므로 직접적으로 접근할 수 없다.
- 프래그먼트: 부분화면이기 때문에 액티비티 위에서 동작한다.
액티비티 안에서 프래그먼트 매니저가 메소드 호출을 통해 뭔가 요청하여 프래그먼트를 띄우곤 함
(프래그먼트에서는 인텐트를 사용할 수 없음)
하나의 액티비티에 하나의 프래그먼트를 전체 화면으로 보여주면 시스템과 관계없이 전체 화면을 전환하는 효과를 만들 수 있음
액티비티는 무거운 반면, 프래그먼트는 리소스가 적게 전환이 가능하기 때문에 장점이다!! (보안 면에서도 좀 더 나은 장점!! )
프래그먼트는 액티비티 위에 올라가야 프래그먼트로 동작함
인플레이션을 위한 별도의 콜백 메소드를 제공함
>> 추가하는 방법 : xml 파일에 or 자바 소스 파일에
1) 우선 Empty Activity 화면을 만들어준다.
< 왼쪽에 있는 화면색을 누르면 오른쪽에는 그 색깔과 똑같은 화면이 뜨도록 해주는 화면을 만들 것이다. >
완성작
2)activity_main.xml 에 메인 화면에 보일 화면을 구성해준다.
왼쪽에는 fragment 로 따로 화면xml 을 만들어서 붙여줄거다
3) 부분화면을 만들어주자!
세 개의 뷰를 만들어서 각각 id 를 만들어준다. id 가 있어야 클릭을 받았을 때 동작할 수 있으니까!
각각 색깔을 클릭했을 때 오른쪽 부분화면에 떠야하니까 색깔 파일을 하나씩 만들어준다
만들고 inflate 시켜준다
4) 이제 만든 부분화면을 2)화면의 fragment 자리에 붙여주기 + 각각의 뷰 클릭리스너 만들기
OnColorButtonListener.java 의 인터페이스 파일을 하나 만들어준다.
OncreateView 에서 inflate 시켜준다!
여기서 각각의 뷰는 클릭을 받아 동작해야하므로 OnClickListener 를 이용해야한다!
뷰를 클릭했을 때 id를 받아와서 onColorButtonLister 의 메소드를 실행시켜준다.
6) 이제 MainActivity 에서 처리해준다
onColorButtonListener를 implements 하여 onColorClick 메소드에서
숫자 0 이면 red를 1이면 green 을 2이면 blue 화면을 만들어준다.
getSupportFragmentManager().beginTransaction().replace() 를 이용해서!! 그럼끝~!
'APP > 안드로이드프로그래밍' 카테고리의 다른 글
안드로이드 레이아웃 : Relative Layout (0) | 2020.11.14 |
---|---|
java.net.SocketException: socket failed: EPERM (Operation not permitted) (0) | 2020.11.01 |
안드로이드에 파이어베이스 연동하기 (0) | 2020.10.31 |
안드로이드스튜디오에서 Jsoup으로 웹 크롤링하기 (Java) (2) | 2020.09.14 |
안드로이드스튜디오에서 위치기반 서비스 만들기 (+ googleMap) (0) | 2020.09.09 |