为了账号安全,请及时绑定邮箱和手机立即绑定

帮助弹出菜单

帮助弹出菜单

桃花长相依 2023-03-23 16:28:21
我有一个 Android 音乐应用程序。它是一个使用 SoundPool 来播放声音的 pad 应用程序。我想实现的是一个页面,用户可以在其中选择自己的和弦。我已经实现了一个弹出菜单,它可以工作,但是我不知道在弹出菜单中单击所选和弦后如何更改按钮。我提供了一个截图,所以你会明白我的意思。这是一个截图:有没有人知道如何制作这样的东西?基本上按钮是灰色的,然后你选择一个和弦,它会改变按钮的颜色和文本以及 onclick 事件来演奏和弦。
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

这是我将如何做到这一点:

首先,按钮网格实际上是一个带有自定义视图的 RecyclerView 和一个 GridLayoutManager。

其次,我将有一个模型类与 RecyclerView 中的每个项目相关联。该模型将包含它应该播放的声音以及您可能需要的其他内容。

第三,我会在 RecyclerView 上附加一个自定义适配器。每个项目都会有一个关联的模型对象。当我点击一个对象时,我会首先检查它是否附加了一些声音(通过检查关联的模型对象)。如果是,我会简单地播放声音。如果没有,我将显示弹出菜单。在选择弹出菜单时,我会用所选数据更新关联模型,然后更新按钮的视图。

编辑(对 GridView 做同样的事情)

您想要实现的目标背后的逻辑与上述内容基本相似,只是您管理项目的方式发生了变化。这是所需的步骤

首先,您必须创建一个包含尽可能多的按钮的 GridView。为每个按钮分配一个唯一的 ID,以便可以访问。

其次,创建一个模型类(与 RecyclerView 的情况相同)。

第三,将点击侦听器附加到 GridView 中的每个按钮。单击时,您将检查与该按钮关联的模型对象。如果它附有一些声音,您将播放声音。否则,您将显示弹出菜单并在选择项目时将其分配给模型对象。


查看完整回答
反对 回复 2023-03-23
?
三国纷争

TA贡献1804条经验 获得超7个赞

有两种方法可以实现它。

1.通过视图实现

通过视图实现此功能,这比上下文菜单有一个优势,您可以设计自己的视图并像 Pinterest 的应用程序一样实现它和所有

2.通过上下文菜单实现

上下文菜单是内置函数,可让您实现菜单类型。这是内置视图,您可以编写几行代码来实现


查看完整回答
反对 回复 2023-03-23
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信