Ho un EditText che è decimale e ho impostato la sua lunghezza utilizzando Android: maxLength proprietà in xml:Ottenere valore intero da dimens.xml file di risorse in Android
<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" />
Come la sua lunghezza sta andando da utilizzare non solo nel file xml della UI ma anche in una classe java e forse in altri posti, voglio evitare problemi quando aggiorno questo valore in futuro, quindi voglio mettere la lunghezza centralizzata nel file di risorse dimens.xml come segue:
dimens.xml
<resources>
<!-- other things -->
<!-- Constants -->
<item name="quantity_length" format="integer" type="integer">10</item>
<!-- other things -->
</resources>
Da una classe Java ho bisogno di leggere questo valore in modo eseguo:
TypedValue typedValue = new TypedValue();
this.getResources().getValue(R.integer.quantity_length, typedValue, true);
ma posso noto che non esiste un metodo getInt(), solo getFloat():
int digitsBefore = typedValue.getFloat();
così come ho bisogno di ottenerlo come numero intero .... come fare questo? Certo, forse posso ottenerlo usando getFloat() e poi lanciare in intero ... ma non so se è un modo elegante per farlo ... quindi qualche idea?
UPDATE: Oooppssss Ho fatto un errore. È: quantità int = typedValue.getFloat();
invece di:
int digitsBefore = typedValue.getFloat();
perché non si utilizza 'getResources(). GetDimens'? –