2 回答

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是我將如何做到這一點(diǎn):
首先,按鈕網(wǎng)格實(shí)際上是一個(gè)帶有自定義視圖的 RecyclerView 和一個(gè) GridLayoutManager。
其次,我將有一個(gè)模型類(lèi)與 RecyclerView 中的每個(gè)項(xiàng)目相關(guān)聯(lián)。該模型將包含它應(yīng)該播放的聲音以及您可能需要的其他內(nèi)容。
第三,我會(huì)在 RecyclerView 上附加一個(gè)自定義適配器。每個(gè)項(xiàng)目都會(huì)有一個(gè)關(guān)聯(lián)的模型對(duì)象。當(dāng)我點(diǎn)擊一個(gè)對(duì)象時(shí),我會(huì)首先檢查它是否附加了一些聲音(通過(guò)檢查關(guān)聯(lián)的模型對(duì)象)。如果是,我會(huì)簡(jiǎn)單地播放聲音。如果沒(méi)有,我將顯示彈出菜單。在選擇彈出菜單時(shí),我會(huì)用所選數(shù)據(jù)更新關(guān)聯(lián)模型,然后更新按鈕的視圖。
編輯(對(duì) GridView 做同樣的事情)
您想要實(shí)現(xiàn)的目標(biāo)背后的邏輯與上述內(nèi)容基本相似,只是您管理項(xiàng)目的方式發(fā)生了變化。這是所需的步驟
首先,您必須創(chuàng)建一個(gè)包含盡可能多的按鈕的 GridView。為每個(gè)按鈕分配一個(gè)唯一的 ID,以便可以訪問(wèn)。
其次,創(chuàng)建一個(gè)模型類(lèi)(與 RecyclerView 的情況相同)。
第三,將點(diǎn)擊偵聽(tīng)器附加到 GridView 中的每個(gè)按鈕。單擊時(shí),您將檢查與該按鈕關(guān)聯(lián)的模型對(duì)象。如果它附有一些聲音,您將播放聲音。否則,您將顯示彈出菜單并在選擇項(xiàng)目時(shí)將其分配給模型對(duì)象。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
有兩種方法可以實(shí)現(xiàn)它。
1.通過(guò)視圖實(shí)現(xiàn)
通過(guò)視圖實(shí)現(xiàn)此功能,這比上下文菜單有一個(gè)優(yōu)勢(shì),您可以設(shè)計(jì)自己的視圖并像 Pinterest 的應(yīng)用程序一樣實(shí)現(xiàn)它和所有
2.通過(guò)上下文菜單實(shí)現(xiàn)
上下文菜單是內(nèi)置函數(shù),可讓您實(shí)現(xiàn)菜單類(lèi)型。這是內(nèi)置視圖,您可以編寫(xiě)幾行代碼來(lái)實(shí)現(xiàn)
添加回答
舉報(bào)