package
com.ayush.popupmenu
import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
android.util.Log
import
android.widget.ImageView
import
android.widget.PopupMenu
import
android.widget.Toast
import
java.lang.Exception
class
MainActivity : AppCompatActivity() {
lateinit var img: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
img = findViewById(R.id.img)
popupMenu()
}
private
fun popupMenu() {
val popupMenu = PopupMenu(
this
, img)
popupMenu.inflate(R.menu.popup_menu)
popupMenu.setOnMenuItemClickListener {
when (it.itemId) {
R.id.share -> {
Toast.makeText(
this
,
"Shared"
, Toast.LENGTH_SHORT).show()
true
}
R.id.save -> {
Toast.makeText(
this
,
"saved"
, Toast.LENGTH_SHORT).show()
true
}
R.id.download -> {
Toast.makeText(
this
,
"downloaded"
, Toast.LENGTH_SHORT).show()
true
}
else
-> {
true
}
}
}
img.setOnLongClickListener {
try
{
val popup = PopupMenu::
class
.java.getDeclaredField(
"mPopup"
)
popup.isAccessible =
true
val menu = popup.get(popupMenu)
menu.javaClass.getDeclaredMethod(
"setForceShowIcon"
, Boolean::
class
.java)
.invoke(menu,
true
)
}
catch
(e: Exception)
{
Log.d(
"error"
, e.toString())
}
finally
{
popupMenu.show()
}
true
}
}
}