반응형
ActionBar
설명
- 화면 상단에 배치된 바에 OptionMenu 항목의 일부를 배치할 수 있다.
주요 속성
- icon
- ActionBar에 표시되는 아이콘 설정
- showAsAction
- ActionBar 배치 여부 결정
- Never : 메뉴를 ActionBar에 표시하지 않음, 디폴트
- Always : 항상 ActionBar에 표시
- ifRoom : ActionBar에 공간이 허락될 경우 표시
- withText : title 속성의 문자열과 함께 표시
- collapseActionView : 접었다 펼쳤다 하면서 뷰를 표시
- actionViewClass
- 접었다 폈다할 때 나타날 뷰를 설정
코드
res/menu/option_menu.xml<?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:icon="@android:drawable/ic_menu_search"
android:title="메뉴1"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always|collapseActionView" />
<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)
val searchItem: MenuItem? = menu?.findItem(R.id.menu1)
val searchView: SearchView = searchItem?.actionView as SearchView
searchView.queryHint = "검색어를 입력해주세요."
searchView.setOnQueryTextListener(object: SearchView.OnQueryTextListener{
override fun onQueryTextSubmit(query: String?): Boolean {
Toast.makeText(baseContext, "onQueryTextSubmit - $query", Toast.LENGTH_SHORT).show()
return false
}
override fun onQueryTextChange(newText: String?): Boolean {
Toast.makeText(baseContext, "onQueryTextChange - $newText", Toast.LENGTH_SHORT).show()
return false
}
})
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] ProgressDialog (0) | 2021.02.09 |
---|---|
[Android] AlertDialog (0) | 2021.02.09 |
[Android] PopupMenu (0) | 2021.02.09 |
[Android] ContextMenu (0) | 2021.02.09 |
[Android] OptionMenu (0) | 2021.02.09 |