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?
Antworten
Zu viele Anzeigen?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);
}
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.
Asker
Punkte
173