Ich könnte mir vorstellen, dass es dem Programmierer helfen soll.
Wenn Sie die @ + ID-Konstruktion nicht benötigen, dann wären alle @id-Referenzen/Konstruktionen gültig, dann wäre es schwierig, einen Fehler zu finden, da der Compiler bei falschen Referenzen nicht fehlschlägt (wie es einfach wäre) konstruiere die Tippfehler-ID).
Anders ausgedrückt, müssten alle ID-Referenzfehler zur Laufzeit erkannt werden.
Edit:
bemerkt einfach die ähnliche Antwort von Piovezan, in Bezug auf Ihre Bemerkung:
Maybe, but the result is that many devs use @+id everywhere, since there is no error if the id is already defined, and everything works just fine. That means the compiler tests if the id already exist, but not if it does not exist, that's crazy
Dann die Entwickler imo das @ + id Konstruktion missbräuchlich.
Es ist noch viel besser, zwischen @ + id und @id unterscheiden zu können, da der Compiler (bei denen, die die @ + ID nicht missbrauchen) eine Chance hat, bei falschen Referenzen einen Fehler bei der Kompilierung zu geben .
EDIT2
Und den Kommentar zu adressieren:
That's the link I gave in the first sentence. It explains the difference but does not answer why the '+' cannot be automatically infered by AAPT
Ich glaube, es kann, es funktioniert einfach nicht aufgrund der Argumentation oben (ich glaube).
http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android - beziehen Sie sich – N20084753
@ N20084753 Er erwähnte es bereits in der OP. – Piovezan
@ N20084753 Das ist der Link, den ich im ersten Satz gab. Es erklärt den Unterschied, beantwortet aber nicht, warum das "+" nicht automatisch von AAPT eingegeben werden kann. –