¿Cuándo y por qué se debe utilizar getResources ()?
Estoy empezando con Android dev y jugando.
La documentación de getResources () dice que [r]eturn a Resources instance for your application's package.
- Eclipse androide utilizando recurso de cadena para el tamaño de texto en diseños
- ¿Cómo encontrar cadenas sin traducir? (androide)
- Cómo averiguar qué recursos no se utilizan en una aplicación para Android
- Android: recurso extraíble con números. ¿Es posible?
- Android - getIdentifier devuelve siempre 0 (biblioteca + aplicación)
En los ejemplos de código que he visto esto se utiliza para acceder a los recursos en res
, pero parece que sólo puede acceder a ellos directamente.
Por ejemplo, para recuperar my_string
de res/values/strings.xml
:
<!-- strings.xml --> ... <string name="my_string">This is my string</string> ...
Puedes usar estas dos formas
La primera manera:
// MyActivity.java // ... // No need to use getResources() String msg = getString(R.string.my_string); ...
La segunda manera:
// MyActivity.java // ... // What is the point of getResources() here? // It works but it requires "import android.content.res.Resources;" and is longer Resources the_resources = this.getResources(); String msg = the_resources.getString(R.string.my_string); ...
Entonces, ¿cuándo se le requerirá usar getResources()
para acceder a un recurso? Parece que no es necesario, o se está llamando implícitamente, o debe ser llamado para acceder a otros tipos de recursos o para acceder a los recursos de otras maneras?
- Cómo obtener nombre de recurso de cadena por su valor
- TextView negrita a través de un archivo xml?
- Obtener Id de recurso de ImageView
- ¿Se puede añadir subcarpeta al diseño en el proyecto Eclipse Android?
- Calabash Android: Error de ruta de acceso al intentar ejecutar una prueba en un APK
- Mapa de bits en Android: Tamaño de los recursos para mostrar como 50dp
- Android ¿Es posible definir un mapa en un archivo XML?
- Android 4.0.4 WebView MediaPlayer Error (1, -2147483648) Uso de <audio> Etiqueta y archivo de activos locales
Los recursos tienen muchos métodos auxiliares que podemos requerir.
R.id, R.drawable todo devuelve dinámico int asignado por android durante el tiempo de construcción. Supongamos que tenemos un requisito donde necesitamos acceder a una imagen de bandera coutries basada en su nombre.
Si tenemos nombre de imagen como us.png y el valor que tenemos es 'nosotros'. Las 2 maneras de manejarlo son
if(countryName.equals("us")){ imageview.setImageRsource(R.drawable.us); }
O
Resources res = getResources(); int imageId = res.getIdentifier(getIdentifier(countryName, "drawable" ,"com.myapp"); imageview.setImageRsource(imageId);
El segundo método será el camino a seguir, especialmente cuando hay más de 50 países o usted terminará con un muy largo if-else o switch declaración.
El objeto resources también se utiliza cuando se necesita acceder al contenido de la carpeta Assets
res.getAssets().open(YOUR FILE);
La instancia de recurso también se puede pasar a otros archivos de clase para acceder a los recursos. Estos son algunos de los escenarios que se pueden utilizar para.
Será útil en las clases non_activity.
Pasarás el contexto a la clase y desde allí podrás acceder a los recursos.
Una clase que hereda Activity también hereda getResources (). Si usted tiene una clase que es una actividad (o un derivado de la misma) tiene acceso a este método (a través de la herencia, un concepto realmente, realmente básico en la programación orientada a objetos) Si usted tiene una clase que no es un derivado de tal Clase, es necesario dar acceso a dicho contexto para el acceso a dichos recursos.
Si necesita más información acerca de la herencia, el polimorfismo, o el etc. referente a la programación orientada objeto, sugiero referirme a varios Web site oa los curricula de escuela que tocan en tales ediciones.
- ¿Cómo capturar URL usando filtro de intenciones con un valor de parámetro específico?
- Incorporar git-describe, fecha y hora en una compilación durante la compilación en eclipse