Nur eine kurze Frage, wofür wird die ids.xml bei der Entwicklung einer Android-App verwendet? Ich habe auf der Android-Ressourcen-Webseite ein Beispiel gesehen, das Folgendes enthielt:
id.xml wird im Allgemeinen verwendet, um die IDs zu deklarieren, die Sie für die Ansichten in den Layouts verwenden.
du könntest so etwas verwenden
<TextView android:id="@id/snack">
für Ihre gegebene xml.
Gibt es einen Vorteil, wenn Sie es in “ids.xml” definieren, anstatt nur … android:id=”@+id/snack” zu tun?
– pyko
24. Dezember 2011 um 6:42 Uhr
Soll ich also android:id=”@+id/newID” verwenden oder newID in der Datei ids.xml deklarieren? Was ist die beste Lösung?
– Nguyen Minh Binh
23. Juni 2012 um 6:18 Uhr
Sie können es auch für Tags verwenden view.setTag(id, value) um dieses Tag später aus Ihrer Ansicht zu lesen …
– Funke
22. Oktober 2013 um 19:59 Uhr
@pyko Sie können es für Sonderfälle wie das Testen auf das Vorhandensein einer bestimmten optionalen Ansicht (die möglicherweise nie definiert wird) verwenden, z. B. so etwas wie android.R.empty.
– stn
7. Oktober 2014 um 6:22 Uhr
Ein weiterer Anwendungsfall, den ich gefunden habe, ist das dynamische Hinzufügen von Menüelementen aus Code, bei dem Sie ihm eine ID zuweisen möchten, das Menüelement jedoch nicht in einer Menü-XML-Datei definiert ist, sodass Sie “@+id/foo “. Sie definieren also die ID in der Datei ids.xml und verweisen dann im Code auf R.id.foo.
– Paulus
23. Februar 2016 um 16:19 Uhr
ids.xml hat folgenden Vorteil: Alle IDs wurden deklariert, damit der Compiler sie erkennen kann. Wenn so etwas:
Kann zu einem Kompilierungsfehler führen, da auf text2 verwiesen wurde, bevor es deklariert wurde
Du hast Recht, ich habe genau dieses Problem. Ich weiß, es ist ein alter Beitrag. In meiner Situation muss ich die Schaltfläche „Speichern“ oben in der XML-Datei platzieren, aber sie wird in der Schaltfläche auf dem Bildschirm angezeigt, auf dem ich möchte, dass eine andere Ansicht ÜBER „saveButton“ steht. Ich habe versucht, die Schaltfläche Speichern zu lassen, um UNTER dieser Ansicht zu sagen, aber das hat bei mir nicht funktioniert.
– malhobayyeb
31. März 2013 um 7:42 Uhr
Obwohl es stimmt, hilft es nicht wirklich viel. In diesem Beispiel – hätten Sie setzen können android:layout_alignBelow="@+id/text2" und im zweiten TextView, android:id="@id/text2".
– ataulm
21. Mai 2013 um 11:31 Uhr
Das ist eine gültige Problemumgehung, aber das Deklarieren einer ID in einer anderen Ansicht als der angegebenen ist möglicherweise nicht die beste stilistische Wahl. Damit die Sprache Ihre Absicht richtig widerspiegelt, sollte die ID in der Ansicht deklariert werden, die sie verwendet.
– Tod Bauer
15. November 2013 um 16:12 Uhr
Das Beispiel wird nicht funktionieren. Du brauchst ein RelativeLayout und dann verwenden android:layout_belowseit android:layout_alignBelow="@id/text2" ist ungültig. Selbst dann wird dies problemlos ohne eine kompiliert ids.xmlwas die Erklärung etwas verwirrend macht.
– hamena314
1. Juli 2018 um 9:28 Uhr
Beim dynamischen Erstellen von Ansichten ist das Vordefinieren von IDs in ids.xml gibt die Möglichkeit, eine neu erstellte Ansicht zu referenzieren. Nachdem Sie die verwendet haben setId(id) -Methode können Sie auf die Ansicht zugreifen, als wäre sie in XML definiert worden. Dies Blogeintrag hat ein schönes Beispiel.
Eine weitere Anwendung für id.xml betrifft Layouts und Bibliotheksprojekte. Angenommen, Sie geben eine generische Liste von Optionen in einem Bibliotheks-(Dialog-)Layout an
Wenn Sie eine der Ansichtsdeklarationen aus einer Kopie des Layouts in einem Hauptprojekt entfernen, erhalten Sie zur Laufzeit eine Fehlerausnahme “Kein solches Feld”.
Der Compiler beschwert sich nicht, aber zur Laufzeit ist die ID nicht wirklich vorhanden/bekannt.
Es ist äußerst hilfreich, um einige Layouts, Farben usw. in vorzudefinieren Root-Modul für Multi-Modul-App. Sie können aktuelle Layouts, Farben usw. spezifisch beibehalten App-Modul was hat Root-Modul als Abhängigkeit.
11455600cookie-checkWofür wird ids.xml verwendet?yes