ResourceBundle Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 String
son s. En este ejemplo, las claves son "OkKey" y "CancelKey". En el ejemplo anterior, los valores también String
son 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 MissingResourceException
excepción .
getString
Ademá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<String> getKeys() {
return Collections.enumeration(keySet());
}
// Overrides handleKeySet() so that the getKeys() implementation
// can rely on the keySet() value.
protected Set<String> handleKeySet() {
return new HashSet<String>(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<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("cancelKey"));
}
}
</blockquote> No tienes que restringirte a usar una sola familia de ResourceBundle
s. 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 |
Class |
Devuelve la clase en tiempo de ejecución de este |
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 |
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 |
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 |
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 |
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. |