安卓:批量启用/禁用按钮

6

我有一个活动,其中一堆按钮放置在TableLayout中,类似于拨号键盘。在某些操作期间,我需要暂时禁用这些按钮。令人不快的是,使用TableLayout.setEnabled(false)对嵌套的按钮没有影响。我是否必须设置每个单独的按钮,还是有更好的方法来实现相同的效果?

3个回答

9
我会尝试做出这样的操作:

我会尝试做出这样的操作:

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);
}

虽然不是理想的,但在我的情况下还算可以接受(而且长度也足够短)。谢谢! - Bostone
((Button)touchable).setEnabled(false); - Cyril Jacquart

1

我认为你需要将这些按钮中的每一个单独设置为未激活状态。为了让它看起来更好一些,你可以将所有的按钮放在一个列表中,在激活和取消激活时对它们进行迭代。但是这并不能防止你在代码中找到它们。


至少我可以创建一个自定义按钮,它会监听某些事件并根据其启用/禁用。在我采取这种方法之前,我只是想偷懒 :) - Bostone

0

由于按钮嵌套在TableLayout下面,因此很容易遍历子元素并设置每个元素。我不知道是否有更简单的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接