Java 如何停用未按下的按钮

Java 如何停用未按下的按钮,java,android,arrays,eclipse,performance,Java,Android,Arrays,Eclipse,Performance,我是一个非常缺乏经验的程序员,所以请容忍我对知识的缺乏 我有一个有168个不同按钮的程序,每个按钮都会计算它们被按下的次数。在按下或未按下所有按钮后,我需要停用并灰显未按下的按钮。到目前为止,我使用了一个3D数组来存储每个按钮被按下的次数,并编写了一个简单的代码: if(a[0][0][0]<1) { ImageButton button_a1=(ImageButton) findViewById(R.id.button1a); button_ca1.setEnabled(

我是一个非常缺乏经验的程序员,所以请容忍我对知识的缺乏

我有一个有168个不同按钮的程序,每个按钮都会计算它们被按下的次数。在按下或未按下所有按钮后,我需要停用并灰显未按下的按钮。到目前为止,我使用了一个3D数组来存储每个按钮被按下的次数,并编写了一个简单的代码:

if(a[0][0][0]<1)
{
    ImageButton button_a1=(ImageButton) findViewById(R.id.button1a);
    button_ca1.setEnabled(false);
    button_ca1.setAlpha(6);
}
唯一的问题是,因为每个按钮都不一样,所以我必须分开做168次。有没有办法让它变成一个不占用1000行代码的简单循环


该程序使用Eclipse编写,用于Android应用程序。

如果所有按钮都在同一布局中,则可以使用getChildCount:

然后在您的方法中:

if(a[0][0][0]<1)
{
    // disable all buttons
    for(ImageButton button : buttons) {
        button.setEnabled(false);
        button.setAlpha(6);
    }
}

当然有更简单的方法吗?按钮有一个父组件或所有者,该父组件或所有者有一个可以迭代的子组件容器,否?检查我的编辑@MartinJames I仍在编写回答。此外,按钮组件是否没有可用于存储计数的辅助对象成员?为什么是3d数组?似乎一个1d整数数组就可以了?@FunkTheMonk我需要为一些排列在架子上的东西存储多个值。因此,2d最简单地说明了搁板,而3D用于存储搁板上每个位置的不同值:
List<ImageButton> buttons = new ArrayList<ImageButton>();

// be sure buttons is visible in the method
// when creating the buttons put them inside the list
if(a[0][0][0]<1)
{
    // disable all buttons
    for(ImageButton button : buttons) {
        button.setEnabled(false);
        button.setAlpha(6);
    }
}