Ich habe Android-Anwendung und eine Frage entwickelt.
Wie Sie wissen, müssen wir bei Verwendung von LiveActivity @ ID / Android: List für ListView ID angeben.
Aber wenn ich @ + ID / Android: Liste anstelle von @ ID / Android: Liste verwende, funktioniert es gut.
Was unterscheidet zwischen @ + ID / Android: Liste und @ ID / Android: Liste ??
Wie Sie wissen, wenn wir LiveActivity verwenden, wir müssen @ id / android: list für angeben ListView-ID.
Nein, das tust du nicht. Sie müssen @android:id/list
für die ListView
ID zur Verwendung mit ListActivity
angeben.
Aber wenn ich @ + id / android: list verwende anstelle von @ ID / Android: Liste ist es funktioniert gut.
Nein, diese geben Ihnen Kompilierungsfehler. Doppelpunkte sind keine gültigen Zeichen in Java-Feldnamen und daher sind diese IDs ungültig.
Wenn Sie zur legalen Android-Syntax zurückkehren, wenn Sie Ihre eigene ID deklarieren (keine android:
im Wert), wenn Sie die ID zum ersten Mal in einer Datei verwenden, haben Sie das +
-Zeichen. Das zweite und folgende Male, das +
-Zeichen wird nicht benötigt, obwohl es keinen Schaden zu verursachen scheint, wenn Sie auch da drin sind.
Als Antwort auf Was unterscheidet zwischen @ + ID / Android: Liste und @ ID / Android: Liste? :
Es scheint, dass es zwei Möglichkeiten gibt, auf die Plattform-ID android.R.id.list
: @android:id/list
und @id/android:list
zu verweisen. Die ListActivity-Dokumentation zeigt beides (das erste im Text, das zweite im Beispiel), aber es wird nicht klargestellt, ob es einen Unterschied gibt.
Die @+id/android:list
als ID der ListView scheint ebenfalls zu funktionieren. Ich gehe davon aus, dass eine Kopie des android.R.id.list
-Kennzeichens zur eigenen ID-Liste der Anwendung hinzugefügt wird.
Meiner Meinung nach ist @android:id/list
der eindeutigste Weg, auf android.R.id.list
zu verweisen.
Ressourcen-IDs in Android sind spezifisch für ein Paket (das ist gut, sonst hätten Sie viele Konflikte, wenn Ihre App mehrere Pakete gleichzeitig bearbeitet).
> @+id/list
erstellt eine Ressourcen-ID in Ihrer app (=your package)
mit dem Namen "list"
und geben Sie ihr eine eindeutige ID. Im Code wäre das R.id.list
.
@android:id/list
verwendet die ID "list"
aus dem Paket android (was im Code android.R.id.list
wäre.