สร้างปุ่มเมนูบน 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 - ใช้แอบอะไรบ้างนะบนแอนดรอยด์