Share via


ResourceBundle Classe

Definizione

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à
ResourceBundle
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 Strings. In questo esempio, le chiavi sono "OkKey" e "CancelKey". Nell'esempio precedente, anche i valori sono Strings--"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 getStringa , 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 ResourceBundlee ListResourceBundlePropertyResourceBundle, 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) clearCacheControl#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLiveControl#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&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> Non è necessario limitarsi all'uso di una singola famiglia di ResourceBundles. Ad esempio, è possibile avere un set di aggregazioni per i messaggi di eccezione, (, ExceptionResources , ...) e uno per i widget (, WidgetResources_deWidgetResourceWidgetResources_fr, ...); suddividendo le risorse come si preferisce. ExceptionResources_deExceptionResources_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 null se sconosciuto.

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
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 ResourceBundleoggetto .

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 key è contenuto in questo ResourceBundle o nei relativi bundle padre.

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 Set delle chiavi contenute <solo></em> in questo ResourceBundleoggetto .

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 Set oggetto di tutte le chiavi contenute in questo ResourceBundle oggetto e i relativi bundle padre.

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.

Si applica a