Menu Popup Android adalah menu daftar yang muncul secara vertikal ke tampilan. Menu popup muncul di bawah tampilan jika ada ruang sebaliknya, muncul di atas. Menyentuh di luar ke menu popup membuatnya menghilang.
Menu Popup menyediakan tindakan yang terkait dengan konten tertentu, dan tidak memengaruhi konten terkait.
Antarmuka PopupMenu.OnMenuItemClickListener menerima peristiwa klik item menu, jika item tidak memiliki pemroses kliknya.
Praktik Membuat Menu Pop-Up Aplikasi Android
Dalam contoh ini, kita akan menambahkan item menu popup pada tampilan (tombol). Mengklik tombol tersebut menunjukkan item menu popup di mana kita dapat melakukan tindakan yang relevan.
Buat proyek android dan pilih Basic Activity. Aktivitas ini menghasilkan kode-kode untuk menu secara otomatis.
activity_main.xml
Tambahkan kode berikut di direktori layout di file activity_main.xml. Kode ini dibuat secara otomatis saat membuat Basic Activity.
<?xml version=”1.0″ encoding=”utf-8″?>
<android.support.design.widget.CoordinatorLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”example.javatpoint.com.kotlinpopupmenu.MainActivity”>
<android.support.design.widget.AppBarLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:theme=”@style/AppTheme.AppBarOverlay”>
<android.support.v7.widget.Toolbar
android:id=”@+id/toolbar”
android:layout_width=”match_parent”
android:layout_height=”?attr/actionBarSize”
android:background=”?attr/colorPrimary”
app:popupTheme=”@style/AppTheme.PopupOverlay” />
</android.support.design.widget.AppBarLayout>
<include layout=”@layout/content_main” />
</android.support.design.widget.CoordinatorLayout>
Content_main.xml
Tambahkan kode berikut di file content_main.xml di direktori layout. Dalam layout ini, kita akan menempatkan komponen Tampilan Tombol.
<?xml version=”1.0″ encoding=”utf-8″?>
<android.support.constraint.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
app:layout_behavior=”@string/appbar_scrolling_view_behavior”
tools:context=”example.javatpoint.com.kotlinpopupmenu.MainActivity”
tools:showIn=”@layout/activity_main”>
<Button
android:id=”@+id/button”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_marginBottom=”8dp”
android:layout_marginEnd=”8dp”
android:layout_marginStart=”8dp”
android:layout_marginTop=”8dp”
android:text=”Button”
app:layout_constraintBottom_toBottomOf=”parent”
app:layout_constraintEnd_toEndOf=”parent”
app:layout_constraintStart_toStartOf=”parent”
app:layout_constraintTop_toTopOf=”parent” />
</android.support.constraint.ConstraintLayout>
String.xml
Tambahkan kode ini pada file String.xml kamu :
<resources>
<string name=”app_name”>Kotlin PopupMenu</string>
<string name=”action_settings”>Settings</string>
<string name=”action_cricket”>Cricket</string>
<string name=”action_football”>Football</string>
<string name=”action_hockey”>Hockey</string>
</resources>
Popup_menu.xml
Buat file sumber menu dengan nama popup_menu.xml di direktori menu. Tambahkan tag item yang membuat item menu untuk menu popup :
<?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/action_crick”
android:title=”@string/action_cricket”
app:showAsAction=”never”/>
<item
android:id=”@+id/action_ftbal”
android:title=”@string/action_football”
app:showAsAction=”never”/>
<item
android:id=”@+id/action_hockey”
android:title=”@string/action_hockey”
app:showAsAction=”never”/>
</menu>
MainActivity.kt
Tambahkan kode berikut di Class MainActivity.kt. Di kelas ini, kita mengimplementasikan antarmuka PopupMenu.OnMenuItemClickListener yang menerima peristiwa klik item menu.
Untuk menampilkan menu popup, kita akan memanggil satu metode PopupMenu.show ().
package example.javatpoint.com.kotlinpopupmenu
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Button
import android.widget.PopupMenu
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
val popupMenu: PopupMenu = PopupMenu(this,button)
popupMenu.menuInflater.inflate(R.menu.popup_menu,popupMenu.menu)
popupMenu.setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener { item ->
when(item.itemId) {
R.id.action_crick ->
Toast.makeText(this@MainActivity, “You Clicked : ” + item.title, Toast.LENGTH_SHORT).show()
R.id.action_ftbal ->
Toast.makeText(this@MainActivity, “You Clicked : ” + item.title, Toast.LENGTH_SHORT).show()
R.id.action_hockey ->
Toast.makeText(this@MainActivity, “You Clicked : ” + item.title, Toast.LENGTH_SHORT).show()
}
true
})
popupMenu.show()
}
}
}
Output :
Sumber : https://www.javatpoint.com/kotlin-android-popup-menu