안드로이드 (5)

💻 Programming

[Android/안드로이드] Fragment 사용하기

안녕하세요 케이치입니다. 


오랜만에 포스팅을 하게되네요. 오늘은 안드로이드 스튜디오에서 프래그먼트를 이용한 화면전환을 해보도록 하겠습니다.


이 포스팅을 하게된 이유는 Do It 안드로이드의 동영상 강좌 소스(롤리팝 기준 Day 10 - 2)가 현재 안스에서 생성해주는 기본소스와 다르기 때문입니다.


일단 개발환경부터 보시죠.




자, 일단 안스에서 새로운 프로젝트를 생성해보도록 합시다. 

아래 스크린샷대로 따라서 해보시고 생성된 소스가 동일한지 확인하세요.













자, 이제 우리는 여기에 새로운 프래그먼트 클래스를 만들고 그 프래그먼트의 레이아웃을 추가할 것입니다.

새로 생성될 파일은 두개입니다.

MenuFragment.java와 fragment_menu.xml 입니다.

MenuFragment.java는 MainActivityFragment.java를 복사해서 생성하시면되고

fragment_menu.xml은 fragment_main.xml을 복사해서 생성하시면 됩니다.


자, 이렇게 두개를 추가하셨으면 기존 소스를 아래처럼 변경해주세요.


MenuFragment.java


fragment_menu.xml


MainActivityFragment.java


fragment_main.xml



MainActivity.java


activity_main.xml


변경된 소스를 보시면 메인액티비티 쪽이 좀 크게 바뀌었습니다. activity_main.xml에서 Fragment가 아예 빠져버리고 그 자리를 RelativaLayout이 차지했습니다.


그리고 MainActivity.java에서 setContentView 다음에 한 라인이 추가되었는데 이 라인이 하는 일은 프래그먼트 메니저가 메인 레이아웃 즉 RelativeLayout에 메인프래그먼트(MainActivityFragment)를 추가하는 것입니다. 

그리고 버튼 클릭 리스너에는 프래그먼트메니저가 메인프래그먼트와 메뉴프래그먼트를 교체해주는 기능을 구현했습니다.


이렇게 함으로써 각 프래그먼트에서 다른 프래그먼트를 호출(버튼을 클릭함으로써 호출)할 때 서로 교체가 가능하도록 했습니다.


activity_main.xml에서 Fragment를 뺀 이유는, 해보시면 아시겠지만, 메인 레이아웃을 아예 Fragment로 지정함으로써 엑티비티에 올라간 프래그먼트가 프래그먼트 관리자의 replace메소드가 호출이 되었을 때 destroy 되지 않기 때문입니다. 정확한 이유는 제가 아직 초보자라 잘 모르겠지만 관리자의 손을 떠난 다고 해야하나, 프래그먼트가 그냥 하나의 액티비티가 되어버린것 같은 느낌이 듭니다. 그래서 처음에 화면이 중복되어 나오길래 방안을 찾아서 한 것이 위와 같은 방법이었습니다.


그냥 혼자 공부하면서 끄적이는 거라 정리가 잘 안된것 같긴 한데 조금이라도 도움이 되셨으리라 생각하고 이만 줄이겠습니다. 


이상 케이치였습니다. 


건강조심하시고 즐프하세요 ^-^ ( 전 여름 감기에 걸려서 죽을맛이네요 ㅠㅠ )



오류 메시지 : 새로운 apk의 버전 코드(1)가 이미 존재합니다.


해결방법 : 

AndroidManifest.xml 파일에서 


android:versionCode=""

android:versionName=""


를 찾을 수 있다면 해당 값을 변경해주시면 됩니다.


참고로 버전 코드는 몇 번째 업데이트인지를 표시해주시면되고 버전 네임에는 실제 사용자들에게 보여지는 버전입니다.


구글링 하면 대부분 위와같은 방법으로 해결하신 것 같은데 아마도 이클립스에서 안드로이드 개발 하시던 분들이 올린 글인것 같습니다.


저같은 경우는 안드로이드 스튜디오로 개발을 하고있는데 특별히 세팅을 바꾼게 없는데 manifest파일에 위와같은 설정이 없길래 그냥 수동으로 추가해보려했더니 warning이 떴는데 그래들 빌드에서 값을 오버라이드 하고 있다고 나오더군요.


만약 manifest파일에 저런 설정이 없다면 안드로이드 스튜디오 좌측 패키지 익스플로러 창에서 트리 표시 방법을 Android로 선택을 해주시면 build.gradle ( Module:app )을 열어보시면 versionCode와 versionName 설정하는 곳이 보이실 겁니다.


아래 사진을 참고하세요.






그럼 즐프하세요~ ^-^



안녕하세요~


libGdx 코너가 새롭게 마련되었습니다. 제가 이번에 libGdx를 이용한 게임을 개발할 예정이라 게임을 개발하면서 생긴 libGdx관련 오류나 팁을 공유하기 위해서 게시판을 생성하였습니다. ^-^


libGDX가 뭐냐? 국내에서는 Cocos 시리즈가 게임 개발에 많이 사용되고 있습니다만 외국에서는 libGDX 사용자들도 많습니다. 자바에 익숙하신 분들이라면 쉽게 사용할 수 있는 자바기반이구요, Cocos2d-x 처럼 CrossPlatform 입니다. 하나의 소스만 개발해서 데스크탑에서도 테스트해보실 수 있고 안드로이드, iOS, HTML로도 테스트가 가능하도록 구성되어있습니다. 무료 개발 툴 치고는 상당히 좋은 툴이라고 생각됩니다.


자~ 오늘은 libGdx 설치하는 것 부터 해보도록 하죠~


그 전에 제 환경은 아래와 같습니다.





그리고 이클립스는 버리고 안드로이드 스튜디오를 사용하고 있습니다.


자, 우선 libGdx 사이트로 가서 다운로드를 받아야 겠죠?


http://libgdx.badlogicgames.com/download.html
libgdx
libgdx.badlogicgames.com
본문으로 이동


위 링크를 따라가시면 아래처럼 다운로드 링크가 큼지막하게 보이실겁니다.






다운로드링크를 클릭하시면 gdx-setup.jar 파일을 다운로드 하게 됩니다.


이제 다운로드한 jar 파일을 실행시키세요.


혹시 시스템 보안 설정에 확인된 게시자가 만든 앱만 실행 가능하도록 해놓으셨다면 실행이 안될 겁니다.


그럴경우에는 터미널 창을 열어서 직접 


java -jar gdx-setup.jar 


명령어를 입력해주시거나 아니면 시스템 환경설정 > 보안 및 개인정보에 가시면 강제실행할 수 있는 버튼이 있을 겁니다. 그걸 눌러주시면 되요.


자, 셋업 프로그램이 실행이 되면 아래와 같은 화면이 나올겁니다.



Name 에는 애플리케이션 명을 넣어주시면 되고 패키지는 뭐 안드로이드 패키지 넣듯이 넣어주시면 됩니다.

게임 클래스는 자바 클래스 파일 명을 말하는거고(앱 이름과 동일하게 주시면 됩니다. 그냥 메인 클래스 파일 이름 넣어주시는거니까요 )

Destination은 프로젝트가 설치될 디렉토리 경로인데 저는 안드로이드 스튜디오를 이용할 것이기 때문에 안드로이드 스튜디오 안에 디렉토리를 만들고 그 디렉토리로 설정을 해주었습니다.

Android Sdk 경로는 안드로이드 스튜디오를 이미 사용하신 분들이면 안드로이드 스튜디오 처음 실했하자마자 설정메뉴로 들어가시면 찾으실 수 있고요 아니면 터미널 창에서 find 명령어로 찾으실 수도 있습니다. 예를들면 find / -name android 뭐 이렇게 주면 됩니다.


LibGDX Version은 그대로 놔두시면 됩니다.


그리고 그 밑에 Sub Projects는 기본적으로 모두 다 선택되어있습니다. 근데 저는  html을 해제시켰습니다. 필요없으니까요.

데스크탑은 혹여나 폰없이 데탑에서 테스트 하고 싶을 수도 있을 것 같아서 그냥 넣어봤습니다.


Extensions 에 있는 것은 외부 라이브러리들입니다. 기본적으로 Box2d가 선택되어져있구요 저는 Tools와 Ai를 추가로 선택했습니다.

각 외부라이브러리 이름에 마우스 커서를 올려놓으면 이게 어떤 것들인지 간략하게 설명을 해주니까 여러분들도 필요할것 같아 싶은게 있으면 체크해주시면 됩니다.


자, 그리고 그 밑에  "Show Third Party Extensions"라고 버튼이 하나 있는데 그걸 누르시면 아래와 같은 팝업창이 하나 뜹니다.




기본적으로 모든 체크박스가 해제되어있는데 저는 그냥 다 선택해봤습니다. 혹시 필요할까해서 말이죠 ㅋ 그리고 Save.


다시 원래 화면으로 돌아와서 이제 Generate 버튼을 클릭하시면 각종 라이브러리를 다운받고 빌드를 시작합니다.

이때 빌드툴 버전에 대해서 팝업창이 뜰 수가 있는데 그냥 Yes, Yes 하시면 됩니다. ^-^


저같은 경우는 약 8분정도 걸렸네요. 사실 이것도 여러번 한겁니다. 처음에는 로보vm 라이브러리 다운받다가 시간 엄청 오래걸리고 무슨 에러가 나는데 뭐 제가 할 수 있는 거라고는 위에 체크박스 설정하는 것 뿐인데 구글링해도 답은 안나오고....그냥 여러번 시도하다가 간신히 빌드가 성공적으로 되는 걸 확인할 수 있었습니다.


자, 이렇게 빌드가 성공적으로 됐다면 이제 빌드된 프로젝트를 안드로이드 스튜디오에서 열어서 실행시켜보면 됩니다.


아래그림처럼 안드로이드 스튜디오를 실행시키시고 Import project를 선택을 합니다.


그리고 libGdx설치할 때 주었던 Destination 경로 디렉토리를 선택해주시면 아래처럼 빌드를 또 시작합니다.


저같은 경우는 아래 과정도 꽤나 오래걸렸습니다. 이거 뭐 바로바로 되는게 없더군요. 여러분들은 한번에 성공하시길 바랍니다.


 



자, 빌드를 마치면 프로젝트 화면이 뜹니다. 그리고 바로 실행을 시키시면 유명한 배드로직 초기화면이 뜰겁니다.


자, 이상으로 libGdx 설치하는 법에 대해서 알아보았습니다.


모두 좋은 하루 되세요~

Android Studio 단축키 모음집입니다.


참고로 안드로이드 스튜디오가 인텔리J기반이라는 건 다들 아시죠?


그래서 인텔리J와 단축키도 동일합니다.


인텔리J를 사용해보지 않으신 저 같은 분들은 첨부파일로 올려놓았으니 다운받아서 프린트해놓고 보시면 좋을것 같네요 ^-^


첨부파일은 윈도우 버전과 Mac OS 버전 두가지로 나뉘어져 있습니다.


IntelliJIDEA_ReferenceCard.pdf


IntelliJIDEA_ReferenceCard_Mac.pdf


💻 Programming

안드로이드 스튜디오 단축키

Keyboard Commands

The following tables list keyboard shortcuts for common operations.

Note: This section lists Android Studio keyboard shortcuts for the default keymap. To change the default keymap on Windows and Linux, go to File > Settings > Keymap. If you're using Mac OS X, update your keymap to use the Mac OS X 10.5+ version keymaps under Android Studio > Preferences > Keymap.



Table 1. Programming key commands

ActionAndroid Studio Key Command
Command look-up (autocomplete command name) CTRL + SHIFT + A
Project quick fix ALT + ENTER
Reformat code CTRL + ALT + L (Win)
OPTION + CMD + L (Mac)
Show docs for selected API CTRL + Q (Win)
F1 (Mac)
Show parameters for selected method CTRL + P
Generate method ALT + Insert (Win)
CMD + N (Mac)
Jump to source F4 (Win)
CMD + down-arrow (Mac)
Delete line CTRL + Y (Win)
CMD + Backspace (Mac)
Search by symbol name CTRL + ALT + SHIFT + N (Win)
OPTION + CMD + O (Mac)




Table 2. Project and editor key commands

ActionAndroid Studio Key Command
Build CTRL + F9 (Win)
CMD + F9 (Mac)
Build and run SHIFT + F10 (Win)
CTRL + R (Mac)
Toggle project visibility ALT + 1 (Win)
CMD + 1 (Mac)
Navigate open tabs ALT + left-arrow; ALT + right-arrow (Win)
CTRL + left-arrow; CTRL + right-arrow (Mac)



For a complete keymap reference guide, see the IntelliJ IDEA documentation.




출처 : http://developer.android.com/sdk/installing/studio-tips.html