Was ist anders zwischen @ + ID / Android: Liste und @ ID / Android: Liste?

8

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 ??

    
James Lee 16.07.2010, 11:16
quelle

4 Antworten

7

Der grundlegende Unterschied zwischen @ und @+ besteht darin, dass @+ anzeigt, dass Sie eine neue ID hinzufügen müssen. Das @ selbst weist den Compiler an, nach einer vorhandenen ID zu suchen.

    
ryangavin 16.07.2010 12:54
quelle
4
  

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.

    
CommonsWare 16.07.2010 11:53
quelle
1

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.

    
apa64 19.10.2010 09:24
quelle
1

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.

    
IntelliJ Amiya 23.03.2015 09:45
quelle

Tags und Links