2015-02-14 5 views
5

Können Sie auf ein Zeichen verweisen, wenn der Dateiname einfach eine Zahl ist?Referenzbild mit der Bezeichnung "Nummer"

Example: If I have an image name "1.jpg" in res/drawable it will give me an error if I try to reference it using R.drawable.1

If I have an image name "one.jpg" in res/drawable it will work fine if I try to reference it using R.drawable.one

Antwort

2

Kurze Antwort: Nr

Lange Antwort:

Der Dateiname von jeder Ressource enthalten ist, in der Verpackung - es wird für ein public static final int in der R wie der Feldname zugeordnet wird .java-Datei. Das bedeutet, dass Ressourcennamen neben anderen Einschränkungen auch die Bedingungen für Java-Variablennamen erfüllen müssen.

Beachten Sie, was one of the Java tutorials erinnert uns über Java Variablennamen:

A variable's name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits, beginning with a letter, the dollar sign "$", or the underscore character "_".

Also folgendes gelten Java Variablennamen und kompiliert:

public static final int _1=0x7f020000; 
public static final int one=0x7f020001; 

Während die folgende Variablennamen ein Übersetzungsfehler verursachen würde :

public static final int 1=0x7f020000; 

Die lange Antwort ist t Das ist ein bestehendes Verhalten in Java, auf das Android aufgebaut hat, wobei dieselben Einschränkungen beibehalten werden.

Darüber hinaus geht es weiter: R.java ist nicht spezifisch für Zeichen. Sie werden feststellen, dass Sie kein 1.xml Layout oder sogar einen <string name="1"> in Ihrer strings.xml Datei haben können.

+0

Danke, ich kam zu dem Schluss, dass dies der Grund sein könnte. Es macht Sinn, genau wie Namenskonventionen mit Variablen in Java. :-) –