6 Stimmen

Android: Massenschalter aktivieren/deaktivieren-Tasten

Ich habe eine Aktivität, in der eine Reihe von Schaltflächen innerhalb eines TableLayouts platziert sind, ähnlich wie bei einem Wähltastenfeld. Während einiger Operationen müssen die Schaltflächen vorübergehend deaktiviert werden. Zu meiner Überraschung hat das Setzen von TableLayout.setEnabled(false) keine Auswirkungen auf die verschachtelten Schaltflächen. Muss ich wirklich jede einzelne Schaltfläche deaktivieren oder gibt es einen cleveren (besseren) Weg, um dasselbe zu erreichen?

9voto

Cristian Punkte 195886

Ich würde versuchen, etwas Ähnliches wie das hier zu tun:

TableLayout tableLayoutInstance; // nehmen wir an, Sie haben es bereits initialisiert
// blablabla
// Beispiel zum Deaktivieren aller Schaltflächen
ArrayList touchables = tableLayoutInstance.getTouchables();
for(View touchable : touchables){
    if( touchable instanceof Button )
        ((Button)touchable).setEnabled(false);
}

1voto

Janusz Punkte 181894

Ich denke, du musst jedes einzelne dieser Buttons deaktivieren. Um es ein wenig schöner aussehen zu lassen, könntest du alle Buttons in einer Liste platzieren und während des Aktivierens und Deaktivierens über sie iterieren. Aber das wird dich nicht davon abhalten, sie alle einmal in deinem Code zu finden.

0voto

Asker Punkte 173

Da die Schaltflächen unter einem TableLayout verschachtelt sind, sollte es einfach sein, über die Kinder zu iterieren und jede einzustellen. Ich weiß nicht, ob es einen einfacheren Weg gibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X