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 la agrupación de recursos adecuada 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 aislamiento de la configuración regional del usuario, de lo contrario, 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 puede localizar fácilmente o traducir a diferentes idiomas li> controlan varias configuraciones <regionales a la vez <li> se modifican fácilmente más adelante para admitir incluso 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 una agrupación de recursos predeterminada que simplemente tenga el mismo nombre que su familia ( "MyResources" ) y se usará como paquete 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 como 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 esa agrupación 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 "Cancel" y en "MyResources_de", puede contener "Abbrechen".

Si hay diferentes recursos para distintos 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 en la agrupación. Este es un ejemplo de un ListResourceBundle objeto que 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 "Cancel",--pero no tienen que ser. Los valores pueden ser cualquier tipo de objeto.

Puede recuperar 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>

Java Platform proporciona dos subclases de ResourceBundle, ListResourceBundle y PropertyResourceBundle, 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 adapta 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 PropertyResourceBundle son seguros para subprocesosListResourceBundle.

<h3>ResourceBundle.Control</h3>

La ResourceBundle.Control clase proporciona información necesaria para realizar el proceso de carga de agrupación mediante los métodos de getBundle fábrica que toman una ResourceBundle.Control instancia de . 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 que no almacenen en caché las instancias de agrupación de recursos. Consulte las descripciones del método getBundle/code factory de código>getBundle/code getBundle</code> factory de Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive#clearCache(ClassLoader) clearCache#getBundle(String, Locale, ClassLoader, Control) <y Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload para 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 un 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 como quiera.

Se ha agregado en la versión 1.1.

Documentación de Java para java.util.ResourceBundle.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Constructores

ResourceBundle()

Constructor único.

ResourceBundle(IntPtr, JniHandleOwnership)

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

Propiedades

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

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

(Heredado de Object)
JniPeerMembers

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

Keys

Devuelve los nombres de los recursos contenidos en este objeto ResourceBundle.

Locale

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

Parent

El lote primario de esta agrupación.

PeerReference

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

(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

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)
ContainsKey(String)

Determina si el elemento especificado key está contenido en este ResourceBundle o en sus agrupaciones primarias.

Dispose()

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

(Heredado de Object)
Dispose(Boolean)

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

(Heredado de Object)
Equals(Object)

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

(Heredado de Object)
GetBundle(String)

Obtiene una agrupación de recursos con el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetBundle(String, Locale)

Obtiene una agrupación de recursos mediante el nombre base y la configuración regional especificados, 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, ClassLoader, ResourceBundle+Control)

Obtiene una agrupación de recursos con el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetBundle(String, Locale, ResourceBundle+Control)

Obtiene una agrupación de recursos con el nombre base especificado, la configuración regional predeterminada y el cargador de clases del autor de la llamada.

GetBundle(String, ResourceBundle+Control)

Obtiene una agrupación de recursos con 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 del objeto.

(Heredado de Object)
GetObject(String)

Obtiene un objeto para la clave especificada de esta agrupación de recursos o de uno de sus elementos primarios.

GetString(String)

Obtiene una cadena para la clave especificada de esta agrupación de recursos o de uno de sus elementos primarios.

GetStringArray(String)

Obtiene una matriz de cadenas para la clave especificada de esta agrupación de recursos o de uno de sus elementos primarios.

HandleGetObject(String)

Obtiene un objeto para la clave especificada de esta agrupación de recursos.

HandleKeySet()

Devuelve una 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.

ToArray<T>()

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

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

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

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

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, 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)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

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

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(Heredado de Object)
IJavaPeerable.Finalized()

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

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

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

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Heredado de Object)

Métodos de extensión

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.

GetJniTypeName(IJavaPeerable)

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

Se aplica a