Android: массовые кнопки включения / выключения - PullRequest
6 голосов
/ 08 июля 2010

У меня есть действие, в котором внутри TableLayout размещены несколько кнопок, мало чем отличающихся от клавиатуры.Во время некоторых операций мне нужно временно отключить кнопки.К моему неприятному удивлению, выполнение TableLayout.setEnabled(false) не влияет на вложенные кнопки.Я застрял с настройкой каждой отдельной кнопки или есть изящный (лучший) способ добиться того же самого?

Ответы [ 3 ]

9 голосов
/ 08 июля 2010

Я бы попробовал сделать что-то вроде этого:

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);
}
1 голос
/ 08 июля 2010

Я думаю, вы должны отключить каждую из этих кнопок.Чтобы это выглядело немного лучше, вы можете поместить все кнопки в список и перебирать их во время активации и деактивации.Но это не помешает вам найти их все один раз в вашем коде.

0 голосов
/ 08 июля 2010

Поскольку кнопки вложены в TableLayout, должно быть легко перебирать дочерние элементы и устанавливать каждую из них.Я не знаю, есть ли более простой способ.

...