【问题标题】:How to create context menu for RecyclerView using Kotlin如何使用 Kotlin 为 RecyclerView 创建上下文菜单
【发布时间】:2020-01-13 06:57:24
【问题描述】:

我想使用 Kotlin 代码在长按 RecyclerView 项目时弹出上下文菜单

【问题讨论】:

  • 在调用 item.onLongClickListener 时在 Recycler 视图适配器的视图持有者类中创建回调。在activity中,实现这个回调函数即可。

标签: android android-studio kotlin android-recyclerview contextmenu


【解决方案1】:

您可以在onBindViewHolder 中尝试这样cvCarIcon 可以替换为您所在行的rootlayout。甚至你可以用长点击监听器处理

holder.cvCarIcon.setOnClickListener{
            val popup = PopupMenu(mContext, holder.cvCarIcon)
            popup.inflate(R.menu.options_menu)
            popup.setOnMenuItemClickListener(object : PopupMenu.OnMenuItemClickListener() {
                fun onMenuItemClick(item: MenuItem): Boolean {
                    when (item.getItemId()) {
                        R.id.menu1 ->
                            return true
                        else -> return false
                    }
                }
            })
            popup.show()
        }

【讨论】:

    【解决方案2】:

    我通过将此代码添加到 ViewHolder 类来解决此问题,以显示 弹出菜单 两个项目删除和取消与 资源文件(菜单 xml 文件) 命名为 click_menu

    init{
            V.tV.setOnLongClickListener {
               // V is View variable and tv is name of textView 
    
                val pop= PopupMenu(V.context,it)
                pop.inflate(R.menu.click_menu)
    
                pop.setOnMenuItemClickListener {item->
    
                    when(item.itemId)
    
                    {
                        R.id.delete->{ }
    
                        R.id.cancel->{ }
    
    
                    }
                    true
                }
                pop.show()
                true
          }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多