솜이의 데브로그

안드로이드 스튜디오 실습 #10 ~ #14 본문

Security/이프로_Phishing Fishing

안드로이드 스튜디오 실습 #10 ~ #14

somsoming 2021. 5. 16. 22:18

영상출처는 여기

 

#10강 Navigation Menu 커스텀

 

activity_main.xml 을 다음과 같이 수정한다.밑의 <include layout = @layout/activity_drawer" /> 는 activity_drawer.xml의 레이아웃 파일을 여기에 연결하라는 의미로 추가한다. 맨 위에 activity_main 의 id를 부여하여 java 파일에서 연결한다.

 

새로운 레이아웃을 생성한다.

여기에 실제 메뉴가 열렸을 때의 상황을 생성한다. (슬라이드를 직접 만들기)

 

메뉴 화면을 생성한다.

버튼을 통해 만들거나, Linear Layout을 이용해 버튼 처럼 보이게 생성할 수 있다.

글자가 가운데 정렬하도록 gravity="center" 옵션을 주고, 글자끼리 너무 붙어있지 않도록 줄간격을 설정하기 위해 layout_margin = "10dp" 로 설정한다.

 

위의 설정대로 하면 preview에서 다음과 같이 확인 가능하다.

 

MainActivity.java

DrawerLayout.DrawerListener listener 인스턴스를 선언한다.이 인스턴스는 슬라이드 해서 drawer가 나올 때 상태 값을 받아 올 수 있도록 한다.DrawerSlide 했을 시의 상황, open 했을 때, slide가 닫혔을 때, 상태가 changed 됐을때의 상황을 각각 특정 action 지정하여 기능을 추가 할 수 있다.

 

실행화면버튼을 눌러 메뉴가 나오게 하거나 왼쪽 화면을 쓸어 메뉴가 나오게 할 수 있다. 반대로 쓸거나 메뉴 닫기 버튼을 눌러 메뉴바를 닫아 첫 화면으로 돌아 갈 수 있다.

 

 

#12강 Recycle View

 

Gradle Scripts = build.gradle (module : .app) 에서 dependencies 항목에 recyclerview를 추가하고, appcompat 버전을 맞춰준다.

 

recycler view의 한 컬럼 당 들어갈 데이터를 만든다.

 

item_list.xml 파일을 생성해 다음과 같이 구성한다.

 

MainData.java 파일을 생성하고, iv_profile, tv_name, tv_content 를 각각 선언한다.그 후 alt + insert 키를 눌러 구조체 (Constructor)와 Getter and Setter를 모두 선택해 import 한다.

 

Adapter를 구현하기 위해 MainAdapter.java 파일을 생성한다.필요한 내용들은 Alt+insert 그리고 alt+enter 를 사용하면 안드로이드 스튜디오가 자동 생성 및 오류 수정을 한다.onCreateViewHolder : oncreate과 비슷한 역할로, 리스트 뷰 메뉴가 처음으로 생성 될 때의 생성주기를 뜻한다.

 

onBindViewHolder : 실제 추가될 때에 대한 생성. 이미지 뷰를 생성하는 것들을 가져온다.

버튼을 눌러 지우는 메서드 생성remove() : 지우고 새로고침(notify) 하도록 구현한다.

 

다시 MainActivity.java로 돌아가서 각 변수 선언하고 연결한다.만들었던 MainAdapter 로 부터 생성된 것들을 arryaList에 저장.

 

실행 결과

추가버튼을 누르면 해당 목록들이 추가되고, 짧에 누르면 toast 창이 뜨고 길게 누르면 삭제됨을 확인 할 수 있다.

 

#13강 Fragment

 

Fragment : 한 액티비티에서 조각들을 옷을 바꿔입듯 하는 개념.

 

activity_main.xml

 

Fragment를 쓸 때는 항상 FrameLayout을 통해 교체해주는 layout을 넣어야한다.

Relative Layout 사용. 내부에 여러가지 layout 을 쓸 수 있고, 내부의 Linear Layout은 겉에 RelativeLayout이 있으므로 layout_alignParentBottom = true로 설정하여 레이아웃을 맨 아래쪽에 배치 할 수 있다.

버튼 4개를 생성

 

fragment1.xml

Activity resource를 새로 생성한다. (layout에)

동일하게 fragment2, 3, 4파일을 생성하고, 텍스트만 다르게 변경한다.

 

Fragment1 을 호출했으므로 Fragment1 클래스를 생성해야한다. 동일한 방식으로 버튼이 4개이므로 4개의 클래스를 생성한다.

onCreateView 함수는 onCreate 함수와 같다. 차이점은 Activity에서 실행되는지, Fragment에서 실행되는지.

 

버튼 변수를 4개 선언후, activity와 연결한다.

그 후 각 버튼을 눌렀을 때 화면을 교체하도록 작성한 후, 같은 작업을 4번 반복한다. (위의 코드에서 btn1.setOnClickListener 코드)

 

실행시 처음 뜨는 화면이다.

 

각각 메뉴 1, 2, 3, 4를 눌렀을 때 나오는 화면이다.

 

 

#14강 Log 출력 및 주석 다는 법

 

오류 디버깅을 하기 위해 주석을 남기는 것과 Log를 찍는 법.

 

 

Log.e : Log가 앱이 실행 될 때 출력하도록 하는 구문. e는 error를 줄인 말이다.

 

실행 후 Logcat에서 Error를 확인해보면 입력한 값이 출력되는 것을 확인 할 수 있다.

Error 외의 항목을 선택해서 원하는 형태로 로그를 출력 할 수 있다. (위에서 e 대신 다른 문자 사용해야함)

 

주석은 자바에서 사용하는 것과 동일하게 // 를 사용하여 남긴다.

문단 전체에 주석을 남기려면 /* 를 사용하여 시작하고, */ 로 닫는다.