Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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:

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(); 

  • ObtenidoStyledAttributes anotado con @StyleableRes. Suprimir advertencias
  • FindViewById () devuelve null - intentado TODO
  • Prueba de prueba de Android recurso
  • Diseños específicos de densidad vs. diseños específicos de tamaño en Android
  • Android Studio - Tecla de acceso rápido para navegar a la declaración xml es en lugar de navegar hacia el archivo R
  • NullPointerException con string-array en Spinner
  • Límite de almacenamiento en la carpeta de recursos y activos en android
  • ¿Cómo obtengo el identificador de recurso de una imagen si conozco su nombre?
  • 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); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.