2010-07-08 4 views
6

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

ответ

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

Не идеальный, но приемлемый в моих обстоятельствах (и достаточно короткий). Благодаря! – Bostone

+0

((Button) touchable) .setEnabled (false); –

1

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

+0

По крайней мере, я могу создать пользовательскую кнопку, которая прослушивает определенное событие и включает/отключает на основе этого. Я просто пытаюсь быть ленивым, прежде чем идти по этому пути :) – Bostone

0

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

Смежные вопросы