gpt4 book ai didi

java - 帮助弹出菜单

转载 作者:行者123 更新时间:2023-12-02 09:41:55 25 4
gpt4 key购买 nike

我有一个 Android 音乐应用程序。它是一个使用 SoundPool 来播放声音的 pad 应用程序。我想实现的是一个用户可以选择自己的和弦的页面。我已经实现了一个弹出菜单,它可以工作,但我不知道在单击弹出菜单中所选和弦后如何更改按钮。

我提供了一个屏幕截图,以便您明白我的意思。

这是屏幕截图:

enter image description here

有人知道如何制作这样的东西吗?基本上按钮是灰色的,然后您选择一个和弦,它会更改按钮的颜色和文本以及 onclick 事件来演奏和弦。

最佳答案

我将这样做:

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

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

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

编辑(对 GridView 执行相同操作)

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

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

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

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

关于java - 帮助弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57007256/

25 4 0