Bekommen integer-Wert aus dimens.xml Ressource-Datei in Android

Ich habe eine EditText, die dezimal und ich seine Länge mit android:maxLength Eigenschaft in xml:

    <EditText
        android:id="@+id/quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="numberDecimal"
        android:singleLine="true"
        android:maxLength="@integer/quantity_length" />

Als seine Länge wird nicht nur in der UI-xml-Datei aber auch in einer java-Klasse und vielleicht sind einige andere Orte, die ich will, um Probleme zu vermeiden, wenn ich ein update dieser Wert in Zukunft, so will ich die Länge in der zentrale dimens.xml Ressource-Datei wie folgt:

dimens.xml

<resources>

    <!-- other things -->

    <!-- Constants -->
    <item name="quantity_length" format="integer" type="integer">10</item>

    <!-- other things -->

</resources>

Aus einer java-Klasse, die ich brauche, um diese zu Lesen, damit ich durchführen:

    TypedValue typedValue = new TypedValue();
    this.getResources().getValue(R.integer.quantity_length, typedValue, true);

aber ich kann feststellen, dass es keine Methode getInt(), nur getFloat():

    int digitsBefore = typedValue.getFloat();

so, wie ich brauchen, um es als integer.... wie Sie dies tun? Natürlich, vielleicht kann ich es mit getFloat() und dann die Umwandlung in integer.... aber ich weiß nicht, ob es einen eleganten Weg, es zu tun... also irgendwelche Ideen?

UPDATE:
Oooppssss ich einen Fehler begangen hat. Es ist:
int Menge = typedValue.getFloat();

statt:

int digitsBefore = typedValue.getFloat();
  • warum sind Sie nicht mit getResources().getDimens ?
InformationsquelleAutor user1624552 | 2015-01-05
Schreibe einen Kommentar