1. 메뉴 생성
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
//두번째 매개변수에서 menu id 역할을 한다.
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val menuItem1: MenuItem? = menu?.add(0, 0, 0, "menu1")
val menuItem2: MenuItem? = menu?.add(0, 1, 0, "menu2")
return super.onCreateOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean = when(item.itemId){
0 -> {
Toast.makeText(this, "menu1 click", Toast.LENGTH_SHORT).show()
true
}
1-> {
Toast.makeText(this, "menu2 click", Toast.LENGTH_SHORT).show()
true
}
else -> super.onOptionsItemSelected(item)
}
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu1"
android:title="menu1"/>
<item
android:id="@+id/menu2"
android:icon="@android:drawable/ic_menu_add"
android:title="menu2"
app:showAsAction="always"/>
<item android:id="@+id/menu_search"
android:title="search"
app:showAsAction="always"
app:actionViewClass="androidx.appcompat.widget.SearchView"/>
</menu>
- app:showAsAction="always"는 액션바에 표시하겠다는 속성이다.
기본 디폴트는 never로 표시하지 않는 것이다.
- app:actionViewClass="androidx.appcompat.widget.SearchView"
액션바의 내장 뷰를 이용하는 속성이다.
2. 메인 액티비티 생성
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.menu_main, menu)
return super.onCreateOptionsMenu(menu)
}
}