ResourceBundle Clase

Definición

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

[Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)]
public abstract class ResourceBundle : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)>]
type ResourceBundle = class
    inherit Object
Herencia
ResourceBundle
Derivado
Atributos

Comentarios

Los conjuntos de recursos contienen objetos específicos de la configuración regional. Cuando el programa necesita un recurso específico de la configuración regional, String por ejemplo, el programa puede cargarlo desde el lote de recursos adecuado para la configuración regional del usuario actual. De este modo, puede escribir código de programa que sea en gran medida independiente de la configuración regional del usuario que aísla la mayoría, si no todos, de la información específica de la configuración regional en los conjuntos de recursos.

Esto le permite escribir programas que pueden: <UL><LI> se localiza fácilmente o se traducen en diferentes idiomas <li> controlan varias configuraciones regionales a la vez <li> se modifican fácilmente más adelante para admitir aún más configuraciones regionales </UL.>

Los conjuntos de recursos pertenecen a familias cuyos miembros comparten un nombre base común, pero cuyos nombres también tienen componentes adicionales que identifican sus configuraciones regionales. Por ejemplo, el nombre base de una familia de agrupaciones de recursos podría ser "MyResources". La familia debe tener un paquete de recursos predeterminado que simplemente tenga el mismo nombre que su familia - "MyResources" - y se usará como lote de último recurso si no se admite una configuración regional específica. A continuación, la familia puede proporcionar tantos miembros específicos de la configuración regional según sea necesario, por ejemplo, un alemán denominado "MyResources_de".

Cada agrupación de recursos de una familia contiene los mismos elementos, pero los elementos se han traducido para la configuración regional representada por ese conjunto de recursos. Por ejemplo, tanto "MyResources" como "MyResources_de" pueden tener un String que se usa en un botón para cancelar las operaciones. En "MyResources", String puede contener "Cancelar" y en "MyResources_de" puede contener "Abbrechen".

Si hay diferentes recursos para diferentes países, puede realizar especializaciones: por ejemplo, "MyResources_de_CH" contiene objetos para el idioma alemán (de) en Suiza (CH). Si solo desea modificar algunos de los recursos de la especialización, puede hacerlo.

Cuando el programa necesita un objeto específico de la configuración regional, carga la ResourceBundle clase mediante el #getBundle(java.lang.String, java.util.Locale) getBundle método: <blockquote>

ResourceBundle myResources =
                 ResourceBundle.getBundle("MyResources", currentLocale);

</blockquote>

Los conjuntos de recursos contienen pares clave-valor. Las claves identifican de forma única un objeto específico de la configuración regional de la agrupación. Este es un ejemplo de que ListResourceBundle contiene dos pares clave-valor: <blockquote>

public class MyResources extends ListResourceBundle {
                protected Object[][] getContents() {
                    return new Object[][] {
                        // LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
                        {"OkKey", "OK"},
                        {"CancelKey", "Cancel"},
                        // END OF MATERIAL TO LOCALIZE
                   };
                }
            }

<Las claves /blockquote> siempre Stringson s. En este ejemplo, las claves son "OkKey" y "CancelKey". En el ejemplo anterior, los valores también Stringson s--"OK" y "Cancelar", pero no tienen que ser. Los valores pueden ser cualquier tipo de objeto.

Se recupera un objeto de la agrupación de recursos mediante el método getter adecuado. Dado que "OkKey" y "CancelKey" son ambas cadenas, se usaría getString para recuperarlas: <blockquote>

button1 = new Button(myResources.getString("OkKey"));
            button2 = new Button(myResources.getString("CancelKey"));

</blockquote> Los métodos getter requieren la clave como argumento y devuelven el objeto si se encuentra. Si no se encuentra el objeto, el método getter produce una MissingResourceExceptionexcepción .

getStringAdemás de , ResourceBundle también proporciona un método para obtener matrices de cadenas, getStringArray, así como un método genérico getObject para cualquier otro tipo de objeto. Al usar getObject, tendrá que convertir el resultado en el tipo adecuado. Por ejemplo: <blockquote>

int[] myIntegers = (int[]) myResources.getObject("intList");

</blockquote>

La plataforma Java proporciona dos subclases de ResourceBundley ListResourceBundlePropertyResourceBundle, que proporcionan una manera bastante sencilla de crear recursos. Como ha visto brevemente en un ejemplo anterior, ListResourceBundle administra su recurso como una lista de pares clave-valor. PropertyResourceBundle usa un archivo de propiedades para administrar sus recursos.

Si ListResourceBundle o PropertyResourceBundle no se ajusta a sus necesidades, puede escribir su propia ResourceBundle subclase. Las subclases deben invalidar dos métodos: handleGetObject y getKeys().

La implementación de una ResourceBundle subclase debe ser segura para subprocesos si se usa simultáneamente en varios subprocesos. Las implementaciones predeterminadas de los métodos no abstractos de esta clase y los métodos de las subclases concretas conocidas directas y ListResourceBundle son seguros para subprocesosPropertyResourceBundle.

<h3>ResourceBundle.Control</h3>

La ResourceBundle.Control clase proporciona información necesaria para realizar el proceso de carga de agrupación mediante los getBundle métodos de fábrica que toman una ResourceBundle.Control instancia. Puede implementar su propia subclase para habilitar formatos de agrupación de recursos no estándar, cambiar la estrategia de búsqueda o definir parámetros de almacenamiento en caché. Consulte las descripciones de la clase y el #getBundle(String, Locale, ClassLoader, Control) getBundle método factory para obtener más información.

<h3>Cache Management</h3>

Las instancias de agrupación de recursos creadas por los getBundle métodos de fábrica se almacenan en caché de forma predeterminada y los métodos de fábrica devuelven la misma instancia de agrupación de recursos varias veces si se ha almacenado en caché. getBundle Los clientes pueden borrar la memoria caché, administrar la duración de las instancias de agrupación de recursos almacenados en caché mediante valores de período de vida o especificar no almacenar en caché las instancias de agrupación de recursos. Consulte las descripciones del código<getBundle/code getBundle>/code< factory de >#clearCache(ClassLoader) clearCache#getBundle(String, Locale, ClassLoader, Control) Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLivepara Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload obtener más información.

<h3>Ejemplo</h3>

A continuación se muestra un ejemplo muy sencillo de una ResourceBundle subclase, MyResources, que administra dos recursos (para un mayor número de recursos que probablemente usaría ).Map Tenga en cuenta que no es necesario proporcionar un valor si un "nivel primario" ResourceBundle controla la misma clave con el mismo valor (que para okKey a continuación). <blockquote>

// default (English language, United States)
            public class MyResources extends ResourceBundle {
                public Object handleGetObject(String key) {
                    if (key.equals("okKey")) return "Ok";
                    if (key.equals("cancelKey")) return "Cancel";
                    return null;
                }

                public Enumeration&lt;String&gt; getKeys() {
                    return Collections.enumeration(keySet());
                }

                // Overrides handleKeySet() so that the getKeys() implementation
                // can rely on the keySet() value.
                protected Set&lt;String&gt; handleKeySet() {
                    return new HashSet&lt;String&gt;(Arrays.asList("okKey", "cancelKey"));
                }
            }

            // German language
            public class MyResources_de extends MyResources {
                public Object handleGetObject(String key) {
                    // don't need okKey, since parent level handles it.
                    if (key.equals("cancelKey")) return "Abbrechen";
                    return null;
                }

                protected Set&lt;String&gt; handleKeySet() {
                    return new HashSet&lt;String&gt;(Arrays.asList("cancelKey"));
                }
            }

</blockquote> No tienes que restringirte a usar una sola familia de ResourceBundles. Por ejemplo, podría tener un conjunto de agrupaciones para mensajes de excepción, ExceptionResources (ExceptionResources_fr, ExceptionResources_de, ...), y una para widgets, WidgetResource (WidgetResources_fr, WidgetResources_de, ...); dividir los recursos sin embargo.

Agregado en la versión 1.1.

Java documentación para java.util.ResourceBundle.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
ResourceBundle()

Constructor único.

ResourceBundle(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Propiedades

Nombre Description
BaseBundleName

Devuelve el nombre base de esta agrupación, si se conoce o null si se desconoce.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
JniPeerMembers

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

Keys

Devuelve los nombres de los recursos contenidos en este ResourceBundle.

Locale

Devuelve la configuración regional de este conjunto de recursos.

Parent

Lote primario de esta agrupación.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

Nombre Description
ClearCache()

Quita todos los conjuntos de recursos de la memoria caché que se han cargado mediante el cargador de clases del autor de la llamada.

ClearCache(ClassLoader)

Quita todos los conjuntos de recursos de la memoria caché que ha cargado el cargador de clases especificado.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
ContainsKey(String)

Determina si el elemento especificado key está contenido en este ResourceBundle o en sus conjuntos primarios.

Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
Equals(Object)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control)

Obtiene un conjunto de recursos mediante el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetBundle(String, Locale, ClassLoader)

Obtiene un conjunto de recursos mediante el nombre base, la configuración regional y el cargador de clases especificados.

GetBundle(String, Locale, ResourceBundle+Control)

Obtiene un conjunto de recursos mediante el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetBundle(String, Locale)

Obtiene un conjunto de recursos mediante el nombre base y la configuración regional especificados, y el cargador de clases del autor de la llamada.

GetBundle(String, ResourceBundle+Control)

Obtiene un conjunto de recursos mediante el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetBundle(String)

Obtiene un conjunto de recursos mediante el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
GetObject(String)

Obtiene un objeto para la clave especificada de este conjunto de recursos o uno de sus elementos primarios.

GetString(String)

Obtiene una cadena para la clave especificada de este conjunto de recursos o uno de sus elementos primarios.

GetStringArray(String)

Obtiene una matriz de cadenas para la clave especificada de este conjunto de recursos o uno de sus elementos primarios.

HandleGetObject(String)

Obtiene un objeto para la clave especificada de este conjunto de recursos.

HandleKeySet()

Devuelve un Set de las claves contenidas <solo> em</em> en este ResourceBundle.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
KeySet()

Devuelve una Set de todas las claves contenidas en este ResourceBundle y sus conjuntos primarios.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetParent(ResourceBundle)

Establece la agrupación primaria de esta agrupación.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Los conjuntos de recursos contienen objetos específicos de la configuración regional.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a