본문 바로가기

안드로이드

안드로이드 공부 기초 10(Navigation)

  지금까지 공부했던 내용을 토대로 Navigation Drawer가 있는 프로그램을 만들었다. Andoird Studio에서 제공하는 Navigation Drawer Activity를 사용해 만들었는데, 새 프로젝트를 만들었을 때 프로그램의 구조가 너무 복잡해서 공부하고 파악하는 데 시간이 많이 걸렸다. 우선 프로그램 구조부터 살펴보자.

 

 

<프로그램 구조>

 

 

 activity_main은 app_bar_main과 nav_view가 있다. app_bar_main은 아무 행동도 하지 않았을 때의 화면이고 nav_view는 Navigation Drawer를 열었을 때의 화면이다.

 

 

 app_bar_main엔 다음 세 가지가 있다.

content_main : 메인 화면으로 Fragment를 띄우는 공간이다.

tool_bar : toolbar.

fab : 작은 아이콘을 배치해 눌렀을 때의 동작을 설정할 수 있다.

 

app_bar_main의 mobile_navigation은 세 가지 Fragment를 포함하며 Fragment 전환을 관리한다.

 

 

 nav_view에는 nav_header_main과 activity_main_drawer가 있는데, nav_header_main은 사용자 정보를 표시하고 activity_main_drawer는 각 요소를 누를 때마다 Fragment를 전환시킨다. 

 

 

 나는 여기에 LoginActivity를 추가해 로그인 기능을 구현했다. DB는 추후에 구현하기로 했기 때문에 사용자 정보는 저장할 수 없다.

 

 우선 LoginActivity.java와 activity_login.xml을 만들었다.

 

 

<activity_login.xml>

 

 

 

ID와 PW를 입력받아 Intent를 사용해 MainActivity로 넘긴다.

 

 

<LoginActivity.java>

 

 

 

추가로 LoginActivity가 App을 실행했을 때 첫 번째 Activity가 되어야 하므로 AndroidManifest 파일을 수정했다.

 

 

<AndroidManifest.xml>

 

 

 

 

 

 

 

 

이제 MainActivity를 수정하면 된다. 먼저 MainActivity.java 를 분석해 보았다.

 

 

<MainActivity.java>

 

 

 binding을 통해 xml을 요소를 받아온다. nav_header_main의 사용자명을 사용자의 ID로 바꾸기 위해 getHeaderView(0).findViewById(R.id.username)를 사용했다. appBarMain의 toolbar를 AppBar로 지정했다. 

DrawerLayout을 설정하고 mobile_navigation의 세 가지 Fragment를 넣어줬다. 

 

<MainActivity.java>

 Logout 메뉴를 생성하고 onOptionsItemSelected를 통해 Logout을 눌렀을 때 LoginActivity로 이동하도록 Intent를 사용해 구현했다.

 

 

 

 

빠른 시일 내에 SQLite를 배워서 DB를 간단하게 구현해야겠다.