我有一个网格,里面有很多按钮,是否可以禁用网格,这会导致所有按钮被禁用?。
之所以在使用之后点击一个按钮来回答问题,检查答案并计算得分等,但是如果我在发生这种情况时一直按下按钮它就会一直回答下一个问题,即使我在使用处理程序等待。禁用只是暂时的,它们会在计算完所有内容后再次启用。
我该如何制止?无需手动禁用每个按钮。
提前致谢。
编辑:
GridLayout numgrid = (GridLayout) findViewById(R.id.numbersGrid);
GridLayout lettergrid = (GridLayout) findViewById(R.id.lettersGrid);
numgrid.setEnabled(false);
lettergrid.setEnabled(false);
我尝试了上面的代码,因为我也需要它。
答案 0 :(得分:1)
显然似乎没有“简单”的方法来解决这个问题。您可以做的是将布局中的所有按钮作为数组抓取,然后循环遍历它们。类似于以下方法禁用GridLayout中的所有按钮:
private void disableButtons(GridLayout layout) {
// Get all touchable views
ArrayList<View> layoutButtons = layout.getTouchables();
// loop through them, if they are an instance of Button, disable it.
for(View v : layoutButtons){
if( v instanceof Button ) {
((Button)v).setEnabled(false);
}
}
}
然后简单地传入你的网格布局:
GridLayout numGrid = (GridLayout) findViewById(R.id.numbersGrid);
GridLayout letterGrid = (GridLayout) findViewById(R.id.lettersGrid);
disableButtons(numGrid);
disableButtons(letterGrid);