当我点击一个按钮时,我只想激活它周围的按钮。这怎么可能?

时间:2013-09-24 00:48:47

标签: java android button logic android-button

我有一个8乘8线性布局的按钮。我正在制作一个类似于boggle的小游戏,当我点击一个按钮我希望能够禁用所有按钮,除了它的周围按钮。这也涉及边缘上的按钮。我基本上需要一些帮助来启动这个游戏的逻辑。任何帮助表示赞赏。到目前为止,我已经考虑了程序的结构以及8×8图可能如何激活其邻居,也许如果我可以访问每个按钮的单元格,我可以进一步发展?谢谢。

2 个答案:

答案 0 :(得分:1)

扩展Button并根据邻居的身份为每个按钮提供Buttonlisteners。根据你将它们绑在一起的方式,每个按钮都会有一个buttonlistener绑定到它的每个邻居。如果你不想使用对角线邻居,一个按钮最多可以有5个buttonlisteners(如果按钮正在听它自己的按钮)。)

答案 1 :(得分:0)

这应该可以使用简单的Map来实现:

Map<Button, List<Button>> surroundingButtons = new HashMap<Button, List<Button>>();

然后,对于每个Button,此Map将填充其周围按钮的列表。不幸的是,我不知道如何在这个时候轻松地做到这一点。 我正在考虑将所有按钮添加到单个列表中并使用当前按钮的索引选择它们+/- 8模数某些索引...手动添加它们可能同样容易。

当Map准备就绪时,禁用周围的按钮非常简单。

Button clickedButton; // not showing the onClickListener
for (Button sButton: surroundingButtons.get(clickedButton)) {
    sButton.setEnabled(false);
}

编辑:

读错了这个问题但是; 禁用所有按钮周围的按钮 这个想法仍然适用,只需将您要禁用的所有按钮添加到与地图中的按钮关联的列表中。