Ich habe eine Aktivität definiert durch:
%Vor%Grundsätzlich ist es ein TabHost mit TextViews als Inhalt. Ich baue die Tabs und den Inhalt dieser TextViews dynamisch mit createTabContent (). Das funktioniert gut. Aber unter einigen Umständen (einige Ereignisse, die von einer AsyncTask mit einem TCP-Socket verarbeitet werden), muss ich den Inhalt einiger dieser TextViews ändern.
Ich bin überzeugt, dass mein Problem das Ergebnis meiner Unerfahrenheit mit Android SDK ist, aber ich finde keine Möglichkeit, über den TabHost zu iterieren und den Inhalt für jedes dieser TextViews zu erhalten.
Der "nächste" Ansatz, den ich erreicht habe, ist:
%Vor%Aber dies bedeutet, dass "linea" an den Namen der Registerkarte (an den Indikator) angehängt wird. Ich möchte es zu dem Inhalt dieses Tabs hinzufügen, aber ich kann keinen Weg finden, das ihm zugeordnete TextView abzurufen.
Irgendwelche Ideen werden sehr geschätzt!
--------- EDIT ---------
Obwohl ich in einem Kommentar unten geschrieben habe, dass ich bereits eine Lösung hatte, fand ich heraus, dass sie nicht gültig ist. Der Code sieht jetzt so aus:
%Vor%Das Problem ist, dass getTabContentView () in diesem Moment nur auf die aktive Registerkarte verweist. Wenn ich also TextView einer nicht ausgewählten Registerkarte hinzufügen möchte, muss ich ihn zuvor mit .setCurrentTab (i) what auswählen bedeutet, dass ich den aktiven Tab ändern würde ...
Ich denke, das muss viel einfacher sein als ich denke ... Irgendeine Hilfe dabei?
Danke!
--------- EDIT ---------
An diesem Punkt habe ich festgestellt, dass der Zugriff auf den Inhalt eines inaktiven Tabs nicht möglich ist. Zumindest nicht so. Angeblich können Sie nicht auf eine inaktive Tab-Ansicht zugreifen, da ihr keine, zumindest keine öffentliche View zugeordnet ist.
Ich habe versucht, eine Map zu deklarieren, wobei der erste String der Name des Tabs ist und der zweite der TextView, der mit seinem Inhalt verknüpft ist, und er sie im Moment der Tab-Erstellung zuweist. Das Ergebnis war, dass ich nur die Textansicht der aktiven Registerkarte referenzieren konnte, die anderen eine NullPointer-Ausnahme.
Also habe ich das Problem anders fokussiert. Jetzt, wenn ich etwas Text in eine inaktive Registerkarte hinzufügen muss, füge ich diesen Text zu einem Hash hinzu, ich habe einen OnTabChangeListener deklariert und jedes Mal, wenn ich eine Registerkarte ändere, deponiere ich den ausstehenden Inhalt darin.
Es ist nicht die brillanteste Lösung, aber es ist die einzige, die ich arbeite ... also wenn jemand eine bessere Lösung dafür hat, werde ich dankbar sein.
Registerkarten können über TabWidget aufgerufen werden:
%Vor%Dieser Code gibt die Ansicht eines Tabs zurück, sogar eines inaktiven.
TabHost-Unterregisterkarten können über TabWidget
method getChildTabViewAt(position)
Die ausgewählte Registerkartenansicht kann wie folgt aufgerufen werden:
%Vor%Tags und Links android android-layout android-activity android-tabhost android-view