因此,我目前有9个按钮(3 x 3网格),它们都具有相同的onClick方法(使用when语句确定单击了哪个按钮)。有时,我希望onClick方法更改相邻按钮的背景颜色,并且相邻的按钮取决于单击的按钮。
是否有一种优雅的方式来选择和修改相邻的按钮。按钮id基于以下命名方案b00,b01,b02,b10 ... b22(基于网格位置)。如果没有大量的when语句为每种情况选择哪个按钮,我想不出一种方法。我希望将来拥有更大的网格,因此对每个按钮执行此操作似乎不切实际。谢谢!
如果所有按钮都设置为执行相同的onClick函数,则它们都将执行相同的操作。如果要使每个按钮执行其他操作,则需要按每个按钮ID进行操作或为每个按钮创建不同的功能,在任何情况下都需要定义每个按钮。
一种优雅的方法是编写一种方法来计算任何给定网格位置的相邻按钮
int[] computeAdjacentButtons(int index){
// logic to compute adjacent buttons
return array containing adjacent grid positions
}
然后简单地迭代此数组以更改背景色。