6

ダイヤルパッドとは異なり、TableLayout内に多数のボタンを配置するアクティビティがあります。一部の操作中に、ボタンを一時的に無効にする必要があります。不愉快なことTableLayout.setEnabled(false)に、ネストされたボタンには何の影響もありません。私は個々のボタンを設定することに固執していますか、それとも同じことを達成するための気の利いた(より良い)方法がありますか?

4

3 に答える 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);
}
于 2010-07-08T15:53:10.513 に答える
1

このボタンの各個別を非アクティブに設定する必要があると思います。見栄えを少し良くするために、すべてのボタンをリストに入れて、アクティブ化および非アクティブ化するときにそれらを繰り返し処理することができます。しかし、これはあなたがあなたのコードでそれらすべてを一度見つけることを妨げることはありません。

于 2010-07-08T15:44:58.787 に答える
0

ボタンはTableLayoutの下にネストされているため、子を繰り返し処理してそれぞれを設定するのは簡単です。もっと簡単な方法があるかどうかはわかりません。

于 2010-07-08T16:01:22.663 に答える