如何在AndroidStudio中使用Kotlin创建自定义弹出菜单? [英] How to create custom Popup Menu using Kotlin in AndroidStudio?

查看:962
本文介绍了如何在AndroidStudio中使用Kotlin创建自定义弹出菜单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Koltin在Android中单击按钮视图时类似地创建的弹出菜单.我搜索了SOF,但Google找不到任何建议.任何人都可以提供示例代码来使用Kotlin实现它.

I am trying to create popup menu similarly like this on click on a button view in Android using Koltin. I searched for SOF and Google didn't find any suggestions. Can anyone provide a sample code to achieve it using kotlin.

推荐答案

最后,我做到了,它可能会对某人有所帮助

Finally, I did it, It may help someone

步骤1.首先,创建一个activity_main.xml,其中包含一个名为my_button

Step 1. First, create an activity_main.xml contains a button named my_button

第2步.然后在res/menu下获取header_menu.xml:

Step 2. Then take header_menu.xml under res/menu:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/header1"
        android:title="H1" />
    <item
        android:id="@+id/header2"
        android:title="H2" />
    <item
        android:id="@+id/header3"
        android:title="H3" />

</menu>

第3步.最后,在MainActivity.kt中按如下方式使用它:

Step 3. Finally, in MainActivity.kt use it like:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val clickListener = View.OnClickListener { view ->
            when (view.id) {
                R.id.my_button -> {
                    showPopup(view)
                }
            }
        }

        my_button.setOnClickListener(clickListener)
    }

    private fun showPopup(view: View) {
        var popup: PopupMenu? = null;
        popup = PopupMenu(this, view)
        popup.inflate(R.menu.header_menu)

        popup.setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener { item: MenuItem? ->

            when (item!!.itemId) {
                R.id.header1 -> {
                    Toast.makeText(this@MainActivity, item.title, Toast.LENGTH_SHORT).show();
                }
                R.id.header2 -> {
                    Toast.makeText(this@MainActivity, item.title, Toast.LENGTH_SHORT).show();
                }
                R.id.header3 -> {
                    Toast.makeText(this@MainActivity, item.title, Toast.LENGTH_SHORT).show();
                }
            }

            true
        })

        popup.show()
    }

这篇关于如何在AndroidStudio中使用Kotlin创建自定义弹出菜单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆