我有一个活动,其中一堆按钮放置在TableLayout中,类似于拨号键盘。在某些操作期间,我需要暂时禁用这些按钮。令人不快的是,使用TableLayout.setEnabled(false)
对嵌套的按钮没有影响。我是否必须设置每个单独的按钮,还是有更好的方法来实现相同的效果?
我有一个活动,其中一堆按钮放置在TableLayout中,类似于拨号键盘。在某些操作期间,我需要暂时禁用这些按钮。令人不快的是,使用TableLayout.setEnabled(false)
对嵌套的按钮没有影响。我是否必须设置每个单独的按钮,还是有更好的方法来实现相同的效果?
我会尝试做出这样的操作:
TableLayout tableLayoutInstance; // let's suppouse you have already initialized it
// blablabla
// example to deactivate all buttons
ArrayList<View> touchables = tableLayoutInstance.getTouchables();
for(View touchable : touchables){
if( touchable instanceof Button )
((Button)touchable).setEnabled(false);
}
我认为你需要将这些按钮中的每一个单独设置为未激活状态。为了让它看起来更好一些,你可以将所有的按钮放在一个列表中,在激活和取消激活时对它们进行迭代。但是这并不能防止你在代码中找到它们。
由于按钮嵌套在TableLayout下面,因此很容易遍历子元素并设置每个元素。我不知道是否有更简单的方法。