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