我有一个Android音乐应用。这是一个使用SoundPool播放声音的Pad应用程序。 我想实现的是一个页面,用户可以在其中选择自己的和弦。 我已经实现了一个弹出菜单,它可以工作,但是我不知道一旦在弹出菜单中单击选定的和弦,如何更改按钮。
我正在提供一个屏幕截图,以便您理解我的意思。
这是屏幕截图:
有人知道如何制作这样的东西吗? 基本上,按钮将是灰色的,然后您选择一个和弦,该和弦会同时更改按钮的颜色和文本以及onclick事件以播放和弦。
答案 0 :(得分:1)
这是我的处理方式:
首先,按钮的网格实际上是带有自定义视图和GridLayoutManager的RecyclerView。
第二,我将有一个与RecyclerView中的每个项目相关联的模型类。该模型将包含应该播放的声音以及您可能想要的其他内容。
第三,我将在RecyclerView上附加一个自定义适配器。每个项目都将具有一个关联的模型对象。当我单击一个对象时,首先要检查它是否有声音(通过检查关联的模型对象)。如果是这样,我只会播放声音。如果没有,我将显示弹出菜单。选择弹出菜单后,我将使用所选数据更新关联的模型,然后更新按钮的视图。
编辑(对GridView进行相同操作)
要实现的目标背后的逻辑与上述内容基本相似,只是更改了项目管理方式。这是必需的步骤
首先,您将必须创建一个GridView,该GridView包含尽可能多的按钮。为每个按钮分配一个唯一的ID,以便可以访问。
第二,创建一个模型类(与RecyclerView相同)。
第三,将单击侦听器附加到GridView中的每个按钮。单击时,将检查与该按钮关联的模型对象。如果它附有声音,则将播放声音。否则,您将显示弹出菜单,并在选择一个项目后将其分配给模型对象。
答案 1 :(得分:0)
有两种实现方法。
1。通过视图实现
通过视图实现此功能,与上下文菜单相比,它具有一个优势,您可以设计自己的视图并像Pinterest和all的应用程序一样实现视图
2。通过上下文菜单实现
上下文菜单是内置功能,可让您实现菜单类型。这是内置视图,您可以实现编写几行代码