Panel aplikasi memungkinkan Anda menambahkan tombol untuk tindakan pengguna. Fitur ini memungkinkan Anda menempatkan tindakan terpenting untuk konteks saat ini di bagian atas aplikasi. Misalnya, aplikasi penjelajahan foto mungkin menampilkan bagikan dan buat album di bagian atas saat pengguna melihat rol fotonya. Kapan pengguna melihat satu foto, aplikasi mungkin menampilkan pangkas dan filter.
Ruang di panel aplikasi bersifat terbatas. Jika aplikasi mendeklarasikan lebih banyak tindakan daripada yang dapat ditampung di panel aplikasi, panel aplikasi mengirimkan tindakan berlebih ke menu overflow. Aplikasi juga dapat menetapkan agar suatu tindakan selalu ditampilkan di menu tambahan, bukan ditampilkan di panel aplikasi.
Menambahkan tombol tindakan
Semua tombol tindakan dan item lainnya yang tersedia dalam overflow tindakan adalah
yang ditentukan dalam XML
resource menu. Untuk menambahkan
baru ke bilah tindakan, buat file XML baru dalam direktori
Direktori res/menu/
.
Tambahkan
<item>
untuk setiap item yang ingin Anda sertakan dalam bilah tindakan, seperti yang ditampilkan dalam
contoh file XML menu berikut:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", must appear as action button if possible. --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, must always be in the overflow. --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu>
Atribut app:showAsAction
menentukan apakah tindakan
yang ditampilkan sebagai tombol di panel aplikasi. Jika Anda menetapkan
app:showAsAction="ifRoom"
—seperti dalam kode contoh
tindakan favorit—tindakan ditampilkan sebagai tombol jika ada ruang di
panel aplikasi untuk itu. Jika tidak ada cukup ruang, tindakan berlebih akan dikirim ke
menu tambahan. Jika Anda menetapkan app:showAsAction="never"
—seperti dalam
tindakan settings kode contoh—tindakan akan selalu tercantum di
menu tambahan dan tidak ditampilkan di panel aplikasi.
Sistem menggunakan ikon tindakan sebagai tombol tindakan jika tindakan tersebut ditampilkan di panel aplikasi. Anda dapat menemukan banyak ikon yang berguna di Ikon Material.
Merespons tindakan
Bila pengguna memilih salah satu item panel aplikasi, sistem akan memanggil
aktivitas
onOptionsItemSelected()
metode callback dan meneruskan
Objek MenuItem
untuk menunjukkan item
mana yang diketuk. Dalam implementasi
onOptionsItemSelected()
, panggil metode
MenuItem.getItemId()
untuk menentukan item mana yang diketuk. ID yang ditampilkan cocok dengan nilai yang Anda
deklarasikan dalam atribut <item>
elemen
Atribut android:id
.
Misalnya, cuplikan kode berikut memeriksa tindakan mana yang dipilih pengguna. Jika metode tidak mengenali tindakan pengguna, metode akan memanggil superclass berikut:
Kotlin
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> { // User chooses the "Settings" item. Show the app settings UI. true } R.id.action_favorite -> { // User chooses the "Favorite" action. Mark the current item as a // favorite. true } else -> { // The user's action isn't recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } }
Java
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: // User chooses the "Settings" item. Show the app settings UI. return true; case R.id.action_favorite: // User chooses the "Favorite" action. Mark the current item as a // favorite. return true; default: // The user's action isn't recognized. // Invoke the superclass to handle it. return super.onOptionsItemSelected(item); } }