[Android/Kotlin]Drawer Layout 구현4

hyihyi·2023년 6월 23일

1. 메인 코드 구현 MainActivity.kt

class MainActivity : AppCompatActivity() {

//    외부에서 사용하기 위해 전역변수로 변경
    lateinit var drawerLayout: DrawerLayout

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val navigationView: NavigationView = findViewById(R.id.navigationView)
        drawerLayout = findViewById(R.id.drawerLayout)

        //액션바에 toolbar 셋팅
        setSupportActionBar(findViewById(R.id.toolbar))

        //액션바 객체 생성
        val actionBar: ActionBar? = supportActionBar

        //액션바에 뒤로가기 버튼 생성
        actionBar?.setDisplayHomeAsUpEnabled(true)

        //뒤로가기 버튼 이미지 변경(원하는 이미지로 변경하면 됨)
        actionBar?.setHomeAsUpIndicator(com.google.android.material.R.drawable.ic_clear_black_24)


        //네비게이션뷰 아이템 선택 이벤트
        navigationView.setNavigationItemSelectedListener(
            object: NavigationView.OnNavigationItemSelectedListener{
                override fun onNavigationItemSelected(item: MenuItem): Boolean {

                    when(item.itemId){

                        R.id.nav_camera -> {

                            item.isChecked = true
                            displayMessage("selected camera")
                            drawerLayout.closeDrawers()
                            return true
                        }

                        R.id.nav_photo -> {
                            item.isChecked = true
                            displayMessage("selected photo")
                            drawerLayout.closeDrawers()
                            return true
                        }

                        R.id.nav_slideShow -> {
                            item.isChecked = true
                            displayMessage("selected slideShow")
                            drawerLayout.closeDrawers()
                            return true
                        }

                        else -> {
                            return true
                        }
                    }//when
                }//onNavigationItemSelected
            }//NavigationView.OnNavigationItemSelectedListener
        )//setNavigationItemSelectedListener


    }//onCreate

    //메시지 알림
    private fun displayMessage(message: String){
        Toast.makeText(applicationContext, message, Toast.LENGTH_SHORT).show()
    }

    //옵션메뉴선택 이벤트
    override fun onOptionsItemSelected(item: MenuItem): Boolean {

        when(item.itemId){
            android.R.id.home ->{

                //drawerLayout 펼치기
                drawerLayout.openDrawer(GravityCompat.START)
            }
        }

        return super.onOptionsItemSelected(item)
    }

}//MainActivity
profile
내가 이해하기 쉽게 쓰는 블로그

0개의 댓글