ResourceBundle Klasse

Definition

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

[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
Vererbung
ResourceBundle
Abgeleitet
Attribute

Hinweise

Ressourcenbündel enthalten gebietsschemaspezifische Objekte. Wenn Ihr Programm eine gebietsschemaspezifische Ressource benötigt, z. B. eine String , kann Ihr Programm sie aus dem Ressourcenpaket laden, das für das Gebietsschema des aktuellen Benutzers geeignet ist. Auf diese Weise können Sie Programmcode schreiben, der weitgehend unabhängig vom Gebietsschema des Benutzers ist, das die meisten, wenn nicht alle gebietsschemaspezifischen Informationen in Ressourcenbündeln isoliert.

Dies ermöglicht Es Ihnen, Programme zu schreiben, die: UL>LI leicht lokalisiert oder in verschiedene Sprachen <übersetzt werden können LI> verarbeiten mehrere Gebietsschemas gleichzeitig <LI> können später leicht geändert werden, um noch mehr Gebietsschemas <zu unterstützen /UL><<>

Ressourcenbündel gehören Familien, deren Mitglieder einen gemeinsamen Basisnamen verwenden, deren Namen aber auch zusätzliche Komponenten enthalten, die ihre Gebietsschemas identifizieren. Beispielsweise kann der Basisname einer Familie von Ressourcenbündeln "MyResources" sein. Die Familie sollte über ein Standardressourcenpaket verfügen, das einfach denselben Namen wie die Familie hat – "MyResources", und wird als Bündel der letzten Instanz verwendet, wenn ein bestimmtes Gebietsschema nicht unterstützt wird. Die Familie kann dann so viele gebietsschemaspezifische Mitglieder wie nötig bereitstellen, z. B. ein deutsches mit dem Namen "MyResources_de".

Jedes Ressourcenpaket in einer Familie enthält dieselben Elemente, aber die Elemente wurden für das Gebietsschema übersetzt, das durch dieses Ressourcenpaket dargestellt wird. Beispielsweise verfügen sowohl "MyResources" als auch "MyResources_de" über eine String , die auf einer Schaltfläche zum Abbrechen von Vorgängen verwendet wird. In "MyResources" kann die String "Cancel" und in "MyResources_de" möglicherweise "Abbrechen" enthalten.

Wenn es verschiedene Ressourcen für verschiedene Länder gibt, können Sie Spezialisierungen festlegen: z. B. enthält "MyResources_de_CH" Objekte für die deutsche Sprache (de) in der Schweiz (CH). Wenn Sie nur einige der Ressourcen in der Spezialisierung ändern möchten, können Sie dies tun.

Wenn Ihr Programm ein gebietsschemaspezifisches Objekt benötigt, wird die -Klasse mit der ResourceBundle#getBundle(java.lang.String, java.util.Locale) getBundle Methode blockquote geladen: <>

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

</Blockquote>

Ressourcenbündel enthalten Schlüssel-Wert-Paare. Die Schlüssel identifizieren eindeutig ein gebietsschemaspezifisches Objekt im Bundle. Hier sehen Sie ein Beispiel für ein ListResourceBundle , das zwei Schlüssel-Wert-Paare enthält: <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
                   };
                }
            }

</blockquote-Schlüssel> sind immer Strings. In diesem Beispiel sind die Schlüssel "OkKey" und "CancelKey". Im obigen Beispiel sind die Werte auch Strings--"OK" und "Cancel", aber sie müssen nicht sein. Bei den Werten kann es sich um einen beliebigen Objekttyp handeln.

Sie rufen ein Objekt aus dem Ressourcenpaket mit der entsprechenden Getter-Methode ab. Da "OkKey" und "CancelKey" beide Zeichenfolgen sind, würden Sie sie verwenden getString , um sie abzurufen: <blockquote>

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

</blockquote> Die getter-Methoden erfordern alle den Schlüssel als Argument und geben das -Objekt zurück, falls gefunden. Wenn das Objekt nicht gefunden wird, löst die getter-Methode einen aus MissingResourceException.

Bietet außerdem getStringeine Methode zum Abrufen von Zeichenfolgenarrays sowie getStringArrayeine generische getObject Methode für jeden anderen Objekttyp. ResourceBundle getObjectWenn Sie verwenden, müssen Sie das Ergebnis in den entsprechenden Typ umwandeln. Beispiel: <blockquote>

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

</Blockquote>

Die Java-Plattform stellt zwei Unterklassen von ResourceBundleund ListResourceBundlePropertyResourceBundlebereit, die eine recht einfache Möglichkeit zum Erstellen von Ressourcen bieten. Wie Sie in einem vorherigen Beispiel kurz gesehen haben, ListResourceBundle verwaltet die Ressource als Liste von Schlüssel-Wert-Paaren. PropertyResourceBundle verwendet eine Eigenschaftendatei, um ihre Ressourcen zu verwalten.

Wenn ListResourceBundle Sie ihren Anforderungen nicht entsprechen, PropertyResourceBundle können Sie Ihre eigene ResourceBundle Unterklasse schreiben. Ihre Unterklassen müssen zwei Methoden außer Kraft setzen: handleGetObject und getKeys().

Die Implementierung einer ResourceBundle Unterklasse muss threadsicher sein, wenn sie gleichzeitig von mehreren Threads verwendet wird. Die Standardimplementierungen der nicht abstrakten Methoden in dieser Klasse und die Methoden in den direkten bekannten konkreten Unterklassen ListResourceBundle und PropertyResourceBundle sind threadsicher.

<h3>ResourceBundle.Control</h3>

Die ResourceBundle.Control -Klasse stellt Informationen bereit, die zum Ausführen des Ladevorgangs des Bundles durch die getBundle Factorymethoden erforderlich sind, die eine ResourceBundle.Control instance. Sie können Ihre eigene Unterklasse implementieren, um nicht standardmäßige Ressourcenbündelformate zu aktivieren, die Suchstrategie zu ändern oder Zwischenspeicherungsparameter zu definieren. Ausführliche Informationen finden Sie in den Beschreibungen der -Klasse und der #getBundle(String, Locale, ClassLoader, Control) getBundle Factory-Methode.

<h3>Cacheverwaltung</h3>

Ressourcenbündelinstanzen, die von den getBundle Factorymethoden erstellt wurden, werden standardmäßig zwischengespeichert, und die Factorymethoden geben dasselbe Ressourcenpaket zurück, das mehrmals instance, wenn es zwischengespeichert wurde. getBundle Clients können den Cache löschen, die Lebensdauer zwischengespeicherter Ressourcenbündelinstanzen mithilfe von Time-to-Live-Werten verwalten oder keine Ressourcenbündelinstanzen zwischenspeichern. Ausführliche Informationen finden Sie in den Beschreibungen der #getBundle(String, Locale, ClassLoader, Control) <code>getBundle</code> factory-Methode, #clearCache(ClassLoader) clearCache, Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLiveund Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload .

<h3>Beispiel</h3>

Im Folgenden sehen Sie ein sehr einfaches Beispiel für eine ResourceBundle Unterklasse, MyResourcesdie zwei Ressourcen verwaltet (für eine größere Anzahl von Ressourcen würden Sie wahrscheinlich eine Mapverwenden. Beachten Sie, dass Sie keinen Wert angeben müssen, wenn eine "übergeordnete Ebene" ResourceBundle denselben Schlüssel mit demselben Wert behandelt (wie für den folgenden okKey). <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> Sie müssen sich nicht auf die Verwendung einer einzelnen Familie von ResourceBundles beschränken. Beispielsweise könnten Sie eine Reihe von Bündeln für Ausnahmemeldungen ExceptionResources (ExceptionResources_fr, ExceptionResources_de, ...) und eines für Widgets WidgetResource (WidgetResources_fr, WidgetResources_de, ...) haben.

In Version 1.1 hinzugefügt.

Java-Dokumentation für java.util.ResourceBundle.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

ResourceBundle()

Alleiniger Konstruktor.

ResourceBundle(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen.

Eigenschaften

BaseBundleName

Gibt den Basisnamen dieses Bundles zurück, sofern bekannt oder null unbekannt.

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
JniIdentityHashCode

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
JniPeerMembers

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

Keys

Gibt die Namen der Ressourcen zurück, die in diesem ResourceBundleenthalten sind.

Locale

Gibt das Gebietsschema dieses Ressourcenpakets zurück.

Parent

Das übergeordnete Bündel dieses Bündels.

PeerReference

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

ClearCache()

Entfernt alle Ressourcenbündel aus dem Cache, die mit dem Klassenladeprogramm des Aufrufers geladen wurden.

ClearCache(ClassLoader)

Entfernt alle Ressourcenpakete aus dem Cache, die vom angegebenen Klassenladeprogramm geladen wurden.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
ContainsKey(String)

Bestimmt, ob das angegebene key in diesem ResourceBundle oder den übergeordneten Bündeln enthalten ist.

Dispose()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
Dispose(Boolean)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
Equals(Object)

Gibt an, ob ein anderes Objekt diesem "gleich" ist.

(Geerbt von Object)
GetBundle(String)

Ruft ein Ressourcenpaket unter Verwendung des angegebenen Basisnamens, des Standardgebietsschemas und des Klassenladeprogramms des Aufrufers ab.

GetBundle(String, Locale)

Ruft ein Ressourcenpaket unter Verwendung des angegebenen Basisnamens und Gebietsschemas sowie des Klassenladeprogramms des Aufrufers ab.

GetBundle(String, Locale, ClassLoader)

Ruft ein Ressourcenpaket unter Verwendung des angegebenen Basisnamens, Gebietsschemas und Klassenladeprogramms ab.

GetBundle(String, Locale, ClassLoader, ResourceBundle+Control)

Ruft ein Ressourcenpaket unter Verwendung des angegebenen Basisnamens, des Standardgebietsschemas und des Klassenladeprogramms des Aufrufers ab.

GetBundle(String, Locale, ResourceBundle+Control)

Ruft ein Ressourcenpaket unter Verwendung des angegebenen Basisnamens, des Standardgebietsschemas und des Klassenladeprogramms des Aufrufers ab.

GetBundle(String, ResourceBundle+Control)

Ruft ein Ressourcenpaket unter Verwendung des angegebenen Basisnamens, des Standardgebietsschemas und des Klassenladeprogramms des Aufrufers ab.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
GetObject(String)

Ruft ein Objekt für den angegebenen Schlüssel aus diesem Ressourcenpaket oder einem seiner übergeordneten Elemente ab.

GetString(String)

Ruft eine Zeichenfolge für den angegebenen Schlüssel aus diesem Ressourcenpaket oder einem seiner übergeordneten Elemente ab.

GetStringArray(String)

Ruft ein Zeichenfolgenarray für den angegebenen Schlüssel aus diesem Ressourcenpaket oder einem seiner übergeordneten Elemente ab.

HandleGetObject(String)

Ruft ein Objekt für den angegebenen Schlüssel aus diesem Ressourcenpaket ab.

HandleKeySet()

Gibt einen Set der Schlüssel zurück, die nur< em>/em> in diesem ResourceBundleenthalten sind<.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
KeySet()

Gibt eine Set aller Schlüssel zurück, die in diesem ResourceBundle und den übergeordneten Bündeln enthalten sind.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetParent(ResourceBundle)

Legt das übergeordnete Bündel dieses Bündels fest.

ToArray<T>()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

GetJniTypeName(IJavaPeerable)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

Gilt für: