开发者

Android: mass enable/disable buttons

开发者 https://www.devze.com 2023-01-06 00:03 出处:网络
I have an activity where a bunch of buttons are placed 开发者_开发问答inside TableLayout, not unlike a dial pad. During some operations I need to temporarily disable the buttons. To my unpleasant surp

I have an activity where a bunch of buttons are placed 开发者_开发问答inside TableLayout, not unlike a dial pad. During some operations I need to temporarily disable the buttons. To my unpleasant surprise doing TableLayout.setEnabled(false) has no effect on the nested buttons. Am I stuck with setting each individual button or is there a nifty (better) way to achieve the same?


I'd try to do something like this:

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


I think you have to set each individual of this Buttons to deactivated. To make it look a little bit nicer you could put all of the buttons in a list and iterate over them during activating and deactivating. But this will not prevent you from finding them all once in you code.


Since the buttons are nested under a TableLayout, it should be easy to iterate over the children and set each one. I don't know if there is an easier way.

0

精彩评论

暂无评论...
验证码 换一张
取 消