Obtener valor entero desde el archivo de recursos dimens.xml en Android
Tengo un EditText que es decimal y me fijo su longitud usando android: propiedad maxLength en 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" />
Como su longitud se va a utilizar no sólo en el archivo xml de la interfaz de usuario, sino también en una clase de Java y tal vez en algunos otros lugares, quiero evitar problemas cuando actualizo este valor en el futuro, así que quiero poner la longitud centralizada en el Dimens.xml como sigue:
- ¿Cómo puedo obtener el ID de recurso del icono de la aplicación en mi aplicación desde una API
- Establecer android: windowIsFloating programmatically
- ¿Cuál es el uso del archivo res / values / public.xml en Android?
- Diseño Nombre de la carpeta para Tablet 7 "
- Arrays de recursos
Dimens.xml
<resources> <!-- other things --> <!-- Constants --> <item name="quantity_length" format="integer" type="integer">10</item> <!-- other things --> </resources>
De una clase de java necesito leer este valor así que realizo:
TypedValue typedValue = new TypedValue(); this.getResources().getValue(R.integer.quantity_length, typedValue, true);
Pero puedo notar que no hay método getInt (), sólo getFloat ():
int digitsBefore = typedValue.getFloat();
Así que necesito conseguirlo como entero …. cómo hacer esto? Por supuesto, tal vez puedo conseguirlo usando getFloat () y luego lanzar a entero …. pero no sé si es una manera elegante de hacerlo … así que cualquier idea?
ACTUALIZACIÓN: Oooppssss Hice un error. Es: int cantidad = typedValue.getFloat ();
en lugar de:
int digitsBefore = typedValue.getFloat();
- Recursos de Android $ NotFoundException: Resource ID # 0x7f030027
- Obtención de recursos de otra aplicación
- Extraer el icono de la aplicación del archivo apk
- Carpetas BitmapFactory.decodeResource y drawable *
- NullPointerException con string-array en Spinner
5 Solutions collect form web for “Obtener valor entero desde el archivo de recursos dimens.xml en Android”
¿Por qué no almacenar el entero en res / integers.xml?
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="quantity_length">12</integer> </resources>
Y para acceder a los valores en código
int myInteger = getResources().getInteger(R.integer.quantity_length);
O en XML
android:maxLength="@integer/quantity_length"
Usted no necesita un TypedValue
utilizar el siguiente
(int) this.getResources().getDimension(R.integer.quantity_length)
;
Con su ejemplo, ¿por qué no usa este método?
XML
<integer name="quantity_length">10</integer>
JAVA
getResources().getInteger(R.integer.quantity_length);
int max = getContext().getResources().getInteger(R.integer.quantity_length);
Utilizar:
Integer.ParseInt(digitsBefore);
- Robolectric lanza Recursos $ NotFoundException al intentar acceder al recurso en la carpeta raw
- Acceso a recursos e identificadores de recursos de otras aplicaciones
- Configuración de la imagen de fondo de la vista web a un gráfico de recursos en Android
- Empaquetado de archivos de recursos de Android dentro de un archivo Jar distribuible
- Roboeléctrico con test.R.java
- Android: ¿Por qué getDimension y getDimensionPixelSize devuelven lo mismo?
- Diseños específicos de densidad vs. diseños específicos de tamaño en Android
- WARN in logcat ResourceType: Para el recurso ..., el índice de entrada (...) está más allá del tipo entryCount (1)
- ¿Puedo de alguna manera alias R en Android?
- Cómo utilizar recursos enteros dentro de recursos de cadena en android
- Importar proyecto android en Intellij IDEA / utilizar recursos compartidos
- Class.getResource (className) que me da NullPointerException