Verwenden eines Array-Verweises als XML-Attribut für die benutzerdefinierte Android-Ansicht

Dieses problem wurde gelöst, siehe Kommentare für details.

Ich bin die Erweiterung einer bestehenden Android-Ansicht und dem laden einiger benutzerdefinierte Attribute, wie beschrieben in Deklarieren Sie eine benutzerdefinierte android-UI-Elemente mit XML und Die Definition von benutzerdefinierten attrs.

Attribute mit booleschen und integer-Formate funktionieren, aber wenn ich versuche, geben Sie eine Referenz auf ein array-Ressource, die Anwendung stürzt ab beim Start. Ich habe ein integer-array in einer xml-Ressource-Datei, und ich versuche, es zu benutzen als ein Attribut für die benutzerdefinierte Ansicht.

Kann ich mit dem array-Ressource zu setzen, die "Einträge" - attribute des android-Spinner-Klasse mit keine Fehler, es scheint also ein problem in meiner Implementierung. Die logcat-Meldungen scheinen Sie nicht zu liefern spezifische Informationen über den Absturz, aber ich bin noch auf der Suche, so werde ich aktualisieren, wenn ich etwas finden.

Die Attribute werden deklariert, indem Sie (in attrs.xml):

<declare-styleable name="CustomView">
    <attr name="values" format="reference"/>
    <attr name="isActive" format="boolean"/>
</declare-styleable>

Array ist definiert als (in arrays.xml):

<integer-array name="nums">
    <item>1</item>
    <item>2</item>
    <item>3</item>
</integer-array>

Und ich bin Referenzierung des Arrays:

<com.test.CustomView cv:values="@array/nums" />

Und dadurch die Anwendung zum Absturz sofort. Außerdem, wenn ich mich auf eine Farbe Ressource anstelle eines Arrays, dann wird die Anwendung nicht abstürzt. Weiß jemand, wie man mit diesem problem umzugehen?

InformationsquelleAutor der Frage Michael | 2011-10-30

Schreibe einen Kommentar