ResourceBundle Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
I bundle di risorse contengono oggetti specifici delle impostazioni locali.
[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
- Ereditarietà
- Derivato
- Attributi
Commenti
I bundle di risorse contengono oggetti specifici delle impostazioni locali. Quando il programma necessita di una risorsa specifica delle impostazioni locali, String
ad esempio, il programma può caricarlo dal bundle di risorse appropriato per le impostazioni locali dell'utente corrente. In questo modo, è possibile scrivere codice programma in gran parte indipendente dalle impostazioni locali dell'utente isolando la maggior parte delle informazioni specifiche delle impostazioni locali nei bundle di risorse.
In questo modo è possibile scrivere programmi che possono: <UL<>LI> essere facilmente localizzati, o tradotti, in lingue><diverse li gestiscono più impostazioni locali contemporaneamente <> li essere facilmente modificati in un secondo momento per supportare ancora più impostazioni locali </UL>
I bundle di risorse appartengono a famiglie i cui membri condividono un nome di base comune, ma i cui nomi hanno anche componenti aggiuntivi che identificano le impostazioni locali. Ad esempio, il nome di base di una famiglia di aggregazioni di risorse potrebbe essere "MyResources". La famiglia deve avere un bundle di risorse predefinito che ha semplicemente lo stesso nome della famiglia , "MyResources" e verrà usato come bundle dell'ultima risorsa se non sono supportate impostazioni locali specifiche. La famiglia può quindi fornire tutti i membri specifici delle impostazioni locali, ad esempio uno tedesco denominato "MyResources_de".
Ogni bundle di risorse in una famiglia contiene gli stessi elementi, ma gli elementi sono stati convertiti per le impostazioni locali rappresentate da tale bundle di risorse. Ad esempio, sia "MyResources" che "MyResources_de" possono avere un oggetto String
usato in un pulsante per annullare le operazioni. In "MyResources" String
può contenere "Annulla" e in "MyResources_de" può contenere "Abbrechen".
Se sono presenti risorse diverse per paesi diversi, è possibile effettuare specializzazioni: ad esempio, "MyResources_de_CH" contiene oggetti per la lingua tedesca (de) in Svizzera (CH). Se si desidera modificare solo alcune delle risorse nella specializzazione, è possibile farlo.
Quando il programma richiede un oggetto specifico delle impostazioni locali, carica la ResourceBundle
classe usando il #getBundle(java.lang.String, java.util.Locale) getBundle
metodo : <blockquote>
ResourceBundle myResources =
ResourceBundle.getBundle("MyResources", currentLocale);
</Blockquote>
I bundle di risorse contengono coppie chiave/valore. Le chiavi identificano in modo univoco un oggetto specifico delle impostazioni locali nel bundle. Di seguito è riportato un esempio di che ListResourceBundle
contiene due coppie chiave/valore: <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
};
}
}
<Le chiavi /blockquote> sono sempre String
s. In questo esempio, le chiavi sono "OkKey" e "CancelKey". Nell'esempio precedente, anche i valori sono String
s--"OK" e "Cancel"- ma non devono essere. I valori possono essere qualsiasi tipo di oggetto.
Si recupera un oggetto dal bundle di risorse usando il metodo getter appropriato. Poiché "OkKey" e "CancelKey" sono entrambe stringhe, è possibile usarle getString
per recuperarle: <blockquote>
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));
</blockquote> Tutti i metodi getter richiedono la chiave come argomento e restituiscono l'oggetto, se trovato. Se l'oggetto non viene trovato, il metodo getter genera un oggetto MissingResourceException
.
Oltre getString
a , ResourceBundle
fornisce anche un metodo per ottenere matrici di stringhe, getStringArray
, nonché un metodo generico getObject
per qualsiasi altro tipo di oggetto. Quando si usa getObject
, sarà necessario eseguire il cast del risultato al tipo appropriato. Ad esempio: <blockquote>
int[] myIntegers = (int[]) myResources.getObject("intList");
</Blockquote>
La piattaforma Java fornisce due sottoclassi di ResourceBundle
e ListResourceBundle
PropertyResourceBundle
, che offrono un modo abbastanza semplice per creare risorse. Come si è visto brevemente in un esempio precedente, ListResourceBundle
gestisce la risorsa come elenco di coppie chiave/valore. PropertyResourceBundle
usa un file di proprietà per gestire le relative risorse.
Se ListResourceBundle
o PropertyResourceBundle
non soddisfano le proprie esigenze, è possibile scrivere una sottoclasse personalizzata ResourceBundle
. Le sottoclassi devono eseguire l'override di due metodi: handleGetObject
e getKeys()
.
L'implementazione di una ResourceBundle
sottoclasse deve essere thread-safe se viene usata contemporaneamente da più thread. Le implementazioni predefinite dei metodi non astratti in questa classe e i metodi nelle sottoclassi ListResourceBundle
concrete note dirette e PropertyResourceBundle
sono thread-safe.
<h3>ResourceBundle.Control</h3>
La ResourceBundle.Control
classe fornisce informazioni necessarie per eseguire il processo di caricamento del bundle dai getBundle
metodi factory che accettano un'istanza ResourceBundle.Control
di . È possibile implementare una sottoclasse personalizzata per abilitare formati bundle di risorse non standard, modificare la strategia di ricerca o definire i parametri di memorizzazione nella cache. Per informazioni dettagliate, vedere le descrizioni della classe e il #getBundle(String, Locale, ClassLoader, Control) getBundle
metodo factory.
<gestione< cache h3>/h3>
Le istanze del bundle di risorse create dai getBundle
metodi factory vengono memorizzate nella cache per impostazione predefinita e i metodi factory restituiscono più volte la stessa istanza del bundle di risorse se è stata memorizzata nella cache. getBundle
i client possono cancellare la cache, gestire la durata delle istanze del bundle di risorse memorizzate nella cache usando valori time-to-live o specificare di non memorizzare nella cache le istanze del bundle di risorse. Per informazioni dettagliate, vedere le descrizioni del codice #getBundle(String, Locale, ClassLoader, Control) <getBundle</code> factory. #clearCache(ClassLoader) clearCache
Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive
Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload
>
<h3>Esempio</h3>
Di seguito è riportato un esempio molto semplice di una ResourceBundle
sottoclasse, MyResources
, che gestisce due risorse (per un numero maggiore di risorse si userebbe probabilmente un ).Map
Si noti che non è necessario specificare un valore se un "livello padre" ResourceBundle
gestisce la stessa chiave con lo stesso valore (come per okKey riportato di seguito). <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> Non è necessario limitarsi all'uso di una singola famiglia di ResourceBundle
s. Ad esempio, è possibile avere un set di aggregazioni per i messaggi di eccezione, (, ExceptionResources
, ...) e uno per i widget (, WidgetResources_de
WidgetResource
WidgetResources_fr
, ...); suddividendo le risorse come si preferisce. ExceptionResources_de
ExceptionResources_fr
Aggiunta nella versione 1.1.
Documentazione java per java.util.ResourceBundle
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.
Costruttori
ResourceBundle() |
Costruttore unico. |
ResourceBundle(IntPtr, JniHandleOwnership) |
Costruttore utilizzato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Proprietà
BaseBundleName |
Restituisce il nome di base di questo bundle, se noto o |
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
JniIdentityHashCode |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
JniPeerMembers |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. |
Keys |
Restituisce i nomi delle risorse contenute in questo |
Locale |
Restituisce le impostazioni locali di questo bundle di risorse. |
Parent |
Bundle padre di questo bundle. |
PeerReference |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
ClearCache() |
Rimuove tutti i bundle di risorse dalla cache caricati usando il caricatore di classi del chiamante. |
ClearCache(ClassLoader) |
Rimuove tutti i bundle di risorse dalla cache caricati dal caricatore di classi specificato. |
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
ContainsKey(String) |
Determina se l'oggetto specificato |
Dispose() |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
Dispose(Boolean) |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
GetBundle(String) |
Ottiene un bundle di risorse usando il nome di base specificato, le impostazioni locali predefinite e il caricatore della classe del chiamante. |
GetBundle(String, Locale) |
Ottiene un bundle di risorse usando il nome di base e le impostazioni locali specificati e il caricatore di classe del chiamante. |
GetBundle(String, Locale, ClassLoader) |
Ottiene un bundle di risorse usando il nome di base, le impostazioni locali e il caricatore di classe specificati. |
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control) |
Ottiene un bundle di risorse usando il nome di base specificato, le impostazioni locali predefinite e il caricatore della classe del chiamante. |
GetBundle(String, Locale, ResourceBundle+Control) |
Ottiene un bundle di risorse usando il nome di base specificato, le impostazioni locali predefinite e il caricatore della classe del chiamante. |
GetBundle(String, ResourceBundle+Control) |
Ottiene un bundle di risorse usando il nome di base specificato, le impostazioni locali predefinite e il caricatore della classe del chiamante. |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
GetObject(String) |
Ottiene un oggetto per la chiave specificata da questo bundle di risorse o uno dei relativi elementi padre. |
GetString(String) |
Ottiene una stringa per la chiave specificata da questo bundle di risorse o uno dei relativi elementi padre. |
GetStringArray(String) |
Ottiene una matrice di stringhe per la chiave specificata da questo bundle di risorse o uno dei relativi elementi padre. |
HandleGetObject(String) |
Ottiene un oggetto per la chiave specificata da questo bundle di risorse. |
HandleKeySet() |
Restituisce una |
JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
KeySet() |
Restituisce un |
Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio di questo oggetto. (Ereditato da Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
SetParent(ResourceBundle) |
Imposta il bundle padre di questo bundle. |
ToArray<T>() |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una>notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
IJavaPeerable.DisposeUnlessReferenced() |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
IJavaPeerable.Finalized() |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
IJavaPeerable.JniManagedPeerState |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. (Ereditato da Object) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo verificato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. |
GetJniTypeName(IJavaPeerable) |
I bundle di risorse contengono oggetti specifici delle impostazioni locali. |