반응형

OptionMenu

설명

  • Activity 우상단에 제공하는 메뉴

코드

res/menu/option_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu1"
        android:title="메뉴1" />
    <item
        android:id="@+id/menu2"
        android:title="메뉴2" />
    <item
        android:id="@+id/menu3"
        android:title="메뉴3">
        <menu>
            <item
                android:id="@+id/menu3_1"
                android:title="메뉴3-1" />
            <item
                android:id="@+id/menu3_2"
                android:title="메뉴3-2" />
        </menu>
    </item>
</menu>
MainActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.option_menu, menu)

        // 코드로 메뉴 구성하는 방법
        /*
        menu?.add(Menu.NONE, Menu.FIRST + 1, Menu.NONE, "메뉴1")
        menu?.add(Menu.NONE, Menu.FIRST + 2, Menu.NONE, "메뉴2")

        val sub: SubMenu? = menu?.addSubMenu("메뉴3")
        sub?.add(Menu.NONE, Menu.FIRST + 3, Menu.NONE, "메뉴3-1")
        sub?.add(Menu.NONE, Menu.FIRST + 4, Menu.NONE, "메뉴3-2")
        */
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when (item?.itemId) {
            R.id.menu1 -> Toast.makeText(baseContext, "메뉴1", Toast.LENGTH_SHORT).show()
            R.id.menu2 -> Toast.makeText(baseContext, "메뉴2", Toast.LENGTH_SHORT).show()
            R.id.menu3 -> Toast.makeText(baseContext, "메뉴3", Toast.LENGTH_SHORT).show()
            R.id.menu3_1 -> Toast.makeText(baseContext, "메뉴3-1", Toast.LENGTH_SHORT).show()
            R.id.menu3_2 -> Toast.makeText(baseContext, "메뉴3-2", Toast.LENGTH_SHORT).show()
        }
        return super.onOptionsItemSelected(item)
    }
}

참고

반응형

'Development > Android' 카테고리의 다른 글

[Android] PopupMenu  (0) 2021.02.09
[Android] ContextMenu  (0) 2021.02.09
[Android] Activity  (0) 2021.02.09
[Android] RecyclerView  (0) 2021.02.09
[Android] ViewPager  (0) 2021.02.09

+ Recent posts