我正在try 使用Koltin在Android中创建类似于点击按钮视图this的弹出菜单.我搜索了软件,谷歌没有找到任何建议.任何人都可以提供一个示例代码来使用kotlin实现它.

推荐答案

最后,我做到了,这可能会帮助别人

步骤1.首先,创建一个activity_main.xml包含一个名为my_button的按钮

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>

第三步.最后,在MainActivity.kt种情况下,像这样使用它:

class MainActivity : AppCompatActivity() {

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

        my_button.setOnClickListener {
             showPopup(my_button)
          }
    }

    private fun showPopup(view: View) {
        val 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()
    }

Kotlin相关问答推荐

在kotlin中使用List(mylist. size){index—TODO()}或Map迭代>

有没有一种简单的方法来识别物体?

generic 类实例列表 - 调用采用 T 的函数

有没有什么方法或算法可以在没有存储的情况下生成唯一的随机数?

在 Kotlin 协程中切换 IO 和 UI 的正确方法是什么?

顶级属性的初始化

如何将glide显示的图像下载到设备存储中.Kotlin

interface扩展

为什么 Kotlin 需要函数引用语法?

Kotlin 协程中的 Dispatchers.Main 和 Dispatchers.Default 有什么区别?

来自类型参数的属性的自定义 getter

如何使用 Kotlin Coroutines 使 setOnClickListener debounce 1 秒?

Kotlin 扩展函数 - 覆盖现有方法

Kotlin中OnclickListener方法之间的差异

类型不匹配推断类型为单位,但应为空

这是 Kotlin 中的错误还是我遗漏了什么?

Kotlin 与 C# 中的标志枚举变量具有相似效果的方式是什么

Kotlin var lazy init

Kotlin 是否支持部分应用程序?

在 intelliJ 元素中集成 Kotlinx 协程