Android ImageButton邻近验证

Android ImageButton邻近验证,android,validation,imagebutton,Android,Validation,Imagebutton,我有一个4x4的字母拼图。我想验证一下,只有那些最靠近点击/点击/按下字母的字母必须是可点击的,而其他字母则设置为不可点击。我有image1的代码(见下文)。我正在重新考虑,当我点击附近的ImageButton时,如何启用禁用的ImageButton 集合示例: 1 | 5 | 9 | 13 2 | 6 | 10 | 14 3 | 7 | 11 | 15 4 | 8 | 12 | 16 如果我单击/按下1,则2、5和6可单击,其余不可单击。然后,我将单击2和1,3、5、6和7必须是可单击的

我有一个4x4的字母拼图。我想验证一下,只有那些最靠近点击/点击/按下字母的字母必须是可点击的,而其他字母则设置为不可点击。我有image1的代码(见下文)。我正在重新考虑,当我点击附近的ImageButton时,如何启用禁用的ImageButton

集合示例:

1 | 5 | 9 | 13

2 | 6 | 10 | 14

3 | 7 | 11 | 15

4 | 8 | 12 | 16



如果我单击/按下1,则2、5和6可单击,其余不可单击。然后,我将单击2和1,3、5、6和7必须是可单击的



问题:

  • 如果按钮已单击,如何避免再次单击

  • 如何启用禁用按钮并避免Q1

  • 我正在使用Android Studio

    代码

    if(image1.isPressed()){
    图1.可点击设置(假);
    图2.可点击设置(真);
    图3.可点击设置(假);
    图4.可点击设置(假);
    图5.可点击设置(真);
    图6.可点击设置(真);
    图7.可点击设置(假);
    图8.可点击设置(假);
    图9.可点击设置(假);
    图10.可点击设置(假);
    图11.可点击设置(假);
    图12.可点击设置(假);
    图13.可点击设置(假);
    图14.可点击设置(假);
    图15.可点击设置(假);
    图16.可点击设置(假);
    
    }
    避免编写条件代码。为每一个图像单击编写if是一种糟糕的做法。因此,您可以创建一个arraylist,它将始终保持可单击按钮。根据单击的按钮,更改此arraylist。将此列表传递给一个方法,该方法将为您启用或禁用单击。

    这实际上不是关于图像按钮,而是基于系统的当前状态,您将使用什么算法或方法来确定哪些区域是可单击的

    我们需要把逻辑稍微分开。一方面你有自己的观点。让我们把所有与更新网格相关的内容放在一个黑框中,比如说
    void updateGrid(List>grid)
    。让我们维护一个矩阵,其中包含确定按钮是否可单击的条目

    最初,所有按钮都可以单击。单击按钮时,您将收到一些通知,比如从回调
    void onButtonClick(inti,intj)
    ,其中
    i
    j
    给出按钮的位置。我故意对此含糊其辞,您很可能会得到一个
    id
    ,并且需要自己解决
    I
    j
    位置。在这种情况下,您可能希望将按钮状态和位置封装在某种对象中—这取决于您

    private