สร้างปุ่มเมนูบน Action Bar ของ Template Buttom Navigator Activity
ตอนที่เริ่มสร้าง App ใหม่ โดยใช้ Template Buttom Navigator Activity นั้นจะไม่มีปุ่มเมนูบนด้านขวาของ Action Bar หากเราต้องการใช้ ก็จำเป็นต้องสร้างขึ้นมาเอง
เริ่มด้วยการสร้าง resource file ของ options menu ก่อน
Menu -> New -> Resource File File name : options_menu Resource type : Menu
options_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/searchFragment"
android:icon="@drawable/ic_baseline_search_24"
android:title="@string/action_search"
app:showAsAction="always" />
<item
android:id="@+id/settingsFragment"
android:icon="@drawable/ic_baseline_settings_24"
android:title="@string/action_settings"
app:iconTint="@color/yourcolor"
app:showAsAction="ifRoom" />
<item
android:id="@+id/aboutUsFragment"
android:icon="@drawable/ic_baseline_info_24"
android:title="@string/action_aboutus" />
</menu>
MainActivity.kt
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val inflater = menuInflater
inflater.inflate(R.menu.options_menu, menu)
if (menu is MenuBuilder) {
menu.setOptionalIconsVisible(true)
}
return super.onCreateOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.aboutUsFragment -> {
toast("About Us")
}
}
return super.onOptionsItemSelected(item)
}
เพิ่มรายการในเมนู
menu?.apply {
// ----------------- add a new item to menu ----------------
// add new item to menu
val newItem:MenuItem = menu.add(
Menu.NONE, // group id
2, // item id
1, // order
"New Item" // title
)
// set new item's icon
newItem.setIcon(R.drawable.ic_check_circle)
// set new item show as action flags
newItem.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS or
MenuItem.SHOW_AS_ACTION_WITH_TEXT
)
// menu new item click listener
newItem.setOnMenuItemClickListener {
Toast.makeText(this@MainActivity, "New Item Clicked", Toast.LENGTH_SHORT).show()
true
}
// ----------------- remove an item from menu ----------------
menu.removeItem(R.id.cancel)
// ----------------- update an item in menu ----------------
menu.findItem(R.id.settings).apply {
title = "Updated Title"
}
ตรวจสอบว่า menu ได้สร้างหรือยัง?
::actionMenu.isInitialized
ตรวจสอบว่า key ของ Array มีหรือไม่?
options.has("menu")
การเข้าถึง R -> Resource
android.R.attr.actionBarSize
ที่มา
Relate topics
- วิธีการรับส่งข้อมูลของ Android Fragment
- Android : เพิ่มภาษาไทยให้กับ app
- Add Firebase Analytics & Crashlytics to Android App
- Copy and rename an Android project in Android Studio
- ทำให้ Web App คุยกับ Android ผ่านทาง WebView - Building Web Apps in WebView
- Android เขียนยาก กูเกิลเลยเปิดคอร์ส Android Performance ปรับแต่งประสิทธิภาพแอพ เรียนฟรีผ่านเน็ต
- เขียน App Android จะว่ายากก็ยาก จะว่าง่ายก็ง่าย
- Android : Input type="file" ไม่ทำงานบน webView
- มาเริ่มกันใหม่อีกครั้งกับ Android Studio
- Android Studio
- Settrade Streaming for Android
- Change your android phone to auto webcam
- Android App : Instant Heart Rate - จังหวะการเต้นหัวใจ วัดได้จริงเหรอ?
- My app on Android - ใช้แอบอะไรบ้างนะบนแอนดรอยด์