안드로이드에서 Activity를 Fragment로 바꾸기

less than 1 minute read

팀 프로젝트로 팀원과 함께 개발을 하면서 Activity로 만든 코드를 Fragment로 바꿔야 하는 일이 생겼다.

기존에 Activity 용으로 만들었던 것을 변경하다보니 여러 문제가 생겼다… 처음부터 계획을 잘 짰다면 이런 문제가 안 생겼을테지만, 둘 다 안드로이드 초보였기도 하고, 인생이 원하는 대로 흘러가기엔 너무 변수가 많았다…. (반오십-1의 인생론..?)

아무튼 직접 사용했던 방법을 얘기해보려고 한다.

‘1. this의 경우

많고 많았던 무수한 오류 중에서 돋보적이었던 것은 this에서 나는 에러들이었다.

this는 Fragment 형식에서는 contenxt를 사용하지 않았기 때문에, 나는 getActivity()로 기존의 this를 교체하였다.

‘2. findViewById의 경우

findViewById의 경우, 안드로이드를 개발하다보면 this 만큼이나 자주 쓰는 표현 중 하나였다. 여기서도 오류라니.. 당황하지 않고 구글링을 해보니 앞에 View를 붙여주면 해결되었다.

직접 view 이름을 붙여주어도 괜찮고, getView().findViewId()처럼 getView()를 붙여주어도 괜찮다고 한다.

‘3. SupportMapFragment의 경우

그렇다.. 내가 만들었던 애플리케이션의 경우, 구글 지도 API를 연동하였기 때문에 여기서도 오류가 발생했다.

기존의 Activity에서 작동하는 코드에서는 SupportMapFragment를 이용했지만, mapView 함수를 사용하면 오류가 발생하지 않는다. 기존에 사용하던 Fragment 대신 xml 파일에서 om.google.android.gms.maps.MapView 를 사용하였다.

‘4. protected의 경우

Activity에서 protected로 사용했던 것은, Fragment에서는 public이 된다. 여기서 나는 오류는 public으로 변경해주면 간단히 해결된다.

시간이 부족해서 원하는 바를 다 구현할 수는 없었지만 직접 어플리케이션 하나를 만들어보는 뜻깊은 시간이었던 것 같다. :)

Categories:

Updated: