Android: findviewbyid: Suche nach ID, wenn die Ansicht nicht auf demselben Layout liegt, das von setContentView aufgerufen wird
Ich habe eine activity MyActivity, der sich von MapActivity. In der .xml-Datei mit dem layout kann ich nur die MapView
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/trail_map_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="key"
/>
Aber ich muss zu finden eine andere Ansicht, die sich in einem anderen .xml-Datei.
Leider findViewById liefert null zurück.
Wie bekomme ich die Ansicht, die ich Suche?
Vielen Dank!
Kommentar zu dem Problem
Warum würden Sie brauchen? Was versuchen Sie zu tun?
Es ist eine gängige situation für zeigt eine Ansicht die nicht vorhanden ist. Zum Beispiel, wenn Sie möchten, eine Ansicht zu zeigen, wenn ein Nutzer eine Aktion wie z.B. das drücken einer Taste, klicken auf einen Hauptmenü-Symbol, etc.
InformationsquelleAutor der Frage Santiago | 2010-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank für die Kommentare, ich verstehe, was du meinst, aber ich nicht wollen, um zu überprüfen, die alten Werte. Ich wollte nur einen Zeiger auf die Ansicht.
Blick auf jemands code, ich habe gerade einen workaround, können Sie auf der Wurzel eines Layouts mit
LayoutInflater
.Code ist der folgende, wo
this
ist eine Aktivität:Grundsätzlich die inflater für
this
Kontext, Zugriff auf die root-Blick durch aufblasen Methode, und schließlich rufenfindViewById
auf der root-Ansicht des Layouts.Hoffe, dass ist nützlich für jemanden! Bye
InformationsquelleAutor der Antwort Santiago
Habe ich das geändert in meiner Tätigkeit, sondern erfolgt.
Hier ist mein code:
InformationsquelleAutor der Antwort user5076776
versuchen:
InformationsquelleAutor der Antwort richy
Es ist unmöglich. Sie können nur finden und auf Ansichten zugreifen, die derzeit ausgeführt werden. Wenn Sie möchten, überprüfen Sie den Wert der ex. TextView verwendet in previus Aktivität, die Sie speichern müssen, der Wert ist SharedPreferences -, Datenbank -, Datei-oder pass auf Vorsatz.
InformationsquelleAutor der Antwort skyman