Android按钮单击导致其他按钮被单击

时间:2019-12-23 17:19:15

标签: android button kotlin id

因此,我目前有9个按钮(3 x 3网格),它们都具有相同的onClick方法(使用when语句确定单击了哪个按钮)。有时,我希望onClick方法更改相邻按钮的背景颜色,并且相邻的按钮取决于单击的按钮。

是否有一种优雅的方式来选择和修改相邻的按钮。按钮id基于以下命名方案b00,b01,b02,b10 ... b22(基于网格位置)。如果没有大量的when语句为每种情况选择哪个按钮,我想不出一种方法。我希望将来拥有更大的网格,因此对每个按钮执行此操作似乎不切实际。谢谢!

2 个答案:

答案 0 :(得分:0)

如果所有按钮都设置为执行相同的onClick函数,则它们将全部执行相同的操作。 如果要使每个按钮执行其他操作,则需要按每个按钮ID进行操作,或者为每个按钮创建不同的功能,在任何情况下,您都需要定义每个按钮。

答案 1 :(得分:0)

一种优雅的方法是编写一种方法,以计算任意给定网格位置的相邻按钮

int[] computeAdjacentButtons(int index){
    // logic to compute adjacent buttons
    return array containing adjacent grid positions
}

然后只需迭代此数组即可更改背景颜色。