2011-01-12 4 views
0

Ich schreibe gerade meine erste Android-App und in einem Layout-XML-Datei habe ich vier Tasten, die ein anderes Layout angezeigt werden, wenn Sie gedrückt werden. Anstatt vier separate Bildschirme zu erstellen, habe ich einfach die vier Layouts in das gleiche Layout wie die Schaltflächen mit Android: Sichtbarkeit = "GONE" und dann, wenn eine Taste gedrückt wird, setze ich das entsprechende Layout, um sichtbar zu sein.Android-Layouts verbergen und anzeigen - Wie markierst du aktives Layout?

Meine Frage ist, gibt es eine Best Practice oder vorgeschlagene Methode, um das aktive Layout zu verfolgen, so dass wenn eine Taste gedrückt wird, Sie das aktive Layout wieder auf Sichtbarkeit = "GONE" setzen können, bevor Sie das neue sichtbar machen. Ich dachte, ich könnte nur einen String-Wert mit der ID des aktiven Layouts festlegen, aber dann findViewById wird nicht die Zeichenfolge nehmen, um das Layout zu erhalten. Jede Hilfe oder Vorschläge wären großartig. Vielen Dank!

Antwort

0

Warum verwenden Sie eine Zeichenfolge, um die ID des Layouts zu speichern? Kannst du nicht einfach einen int benutzen, da die IDs so sind? Oder legen Sie die Sichtbarkeit der Layouts über den onClickListener fest, den Sie an jede Schaltfläche angefügt haben?

+0

Ich sage nur mit einer Zeichenfolge war mein erster Gedanke, nicht darauf eingestellt, es überhaupt zu verwenden. Wie übersetzt sich der ID-Name, d. H. R.id.textview1, in einen int? Wenn es als int gespeichert wird, gibt es eine Best Practice zum Speichern von globalen Variablen wie in android? – user573038

+0

Sie sollten die Dokumentation besser überprüfen: http://developer.android.com/reference/android/view/View.html#findViewById%28int%29 (akzeptiert ein int) und http://developer.android.com/ Ressourcen/Tutorials/Hallo-Welt.html (Suche nach "R-Klasse" auf dieser Seite). Warum setzen Sie die Sichtbarkeit nicht von den Listenern aus, anstatt die ID zu speichern? – Stephan

+0

Ich stelle die Sichtbarkeit im OnClickListener für die aktuelle Taste ein, aber ich brauche eine Möglichkeit zu wissen, welche die vorher gedrückte Taste war, damit ich ihre Sichtbarkeit wieder auf "GONE" setzen kann. – user573038