У меня есть действие, куда набор кнопок помещается в 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, должно быть легко перебирать дочерние элементы и устанавливать каждого из них. Не знаю, есть ли более простой способ.