Sprache

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, String kann ihr Programm es beispielsweise aus dem Ressourcenbundle 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 gebietsschemaspezifischen Informationen in Ressourcenbündeln, wenn nicht alle, isoliert.

Auf diese Weise können Sie Programme schreiben, die: <UL><LI> einfach lokalisiert oder übersetzt werden kann, in verschiedene Sprachen <LI> behandeln mehrere Gebietsschemas gleichzeitig <LI> können später problemlos geändert werden, um noch mehr Gebietsschemas </UL zu unterstützen>

Ressourcenbündel gehören zu Familien, deren Mitglieder einen gemeinsamen Basisnamen verwenden, deren Namen aber auch zusätzliche Komponenten enthalten, die ihre Gebietsschemas identifizieren. Der Basisname einer Familie von Ressourcenbündeln kann beispielsweise "MyResources" sein. Die Familie sollte über ein Standardressourcenbundle verfügen, das einfach denselben Namen wie seine Familie hat – "MyResources" – und wird als Letztes-Bündel verwendet, wenn ein bestimmtes Gebietsschema nicht unterstützt wird. Die Familie kann dann beliebig viele gebietsschemaspezifische Mitglieder bereitstellen, z. B. eine deutsche mit dem Namen "MyResources_de".

Jedes Ressourcenbundle in einer Familie enthält dieselben Elemente, aber die Elemente wurden für das gebietsschema übersetzt, das durch dieses Ressourcenbundle dargestellt wird. Beispielsweise können sowohl "MyResources" als auch "MyResources_de" eine String Schaltfläche zum Abbrechen von Vorgängen verwenden. In "MyResources" kann die String Datei "Cancel" und in "MyResources_de" enthalten, dass sie "Abbrechen" enthalten kann.

Wenn es unterschiedliche Ressourcen für unterschiedliche Länder gibt, können Sie Spezialisierungen vornehmen: z. B. "MyResources_de_CH" enthält 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, lädt es die ResourceBundle Klasse mit der #getBundle(java.lang.String, java.util.Locale) getBundle Methode: <blockquote>

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

</blockquote>

Ressourcenbündel enthalten Schlüssel-Wert-Paare. Die Schlüssel identifizieren ein gebietsschemaspezifisches Objekt im Bundle eindeutig. Hier ist ein Beispiel für ein Beispiel für ein ListResourceBundle Paar mit zwei Schlüssel-Wert-Paaren: <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> Keys sind immer Strings. In diesem Beispiel sind die Schlüssel "OkKey" und "CancelKey". Im obigen Beispiel sind die Werte auch String"s--"OK" und "Cancel"-- aber nicht erforderlich. Die Werte können ein beliebiger Objekttyp sein.

Sie rufen ein Objekt aus dem Ressourcenbundle mithilfe der entsprechenden Getter-Methode ab. Da "OkKey" und "CancelKey" beide Zeichenfolgen sind, würden Sie sie abrufen getString : <blockquote>

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

</blockquote> The getter methods all require the key as an argument and return the object if found. Wenn das Objekt nicht gefunden wird, löst die Getter-Methode eine MissingResourceException.

Außerdem getStringwird eine Methode zum Abrufen von Zeichenfolgenarrays ResourceBundlesowie eine generische getStringArray Methode für jeden anderen Objekttyp getObject bereitgestellt. Bei Verwendung getObjectmüssen Sie das Ergebnis in den entsprechenden Typ umwandeln. Beispiel: <Blockquote>

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

</blockquote>

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

Wenn ListResourceBundle sie PropertyResourceBundle Ihren Anforderungen nicht entsprechen, können Sie Ihre eigene ResourceBundle Unterklasse schreiben. Ihre Unterklassen müssen zwei Methoden überschreiben: handleGetObject und getKeys().

Die Implementierung einer ResourceBundle Unterklasse muss threadsicher sein, wenn sie von mehreren Threads gleichzeitig 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 Bündelladevorgangs durch die getBundle Factorymethoden erforderlich sind, die eine ResourceBundle.Control Instanz verwenden. Sie können Ihre eigene Unterklasse implementieren, um nicht standardmäßige Ressourcenbundleformate 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 Factorymethode.

<h3>Cacheverwaltung</h3>

Von den getBundle Factorymethoden erstellte Ressourcenbundleinstanzen werden standardmäßig zwischengespeichert, und die Factorymethoden geben die gleiche Ressourcenbundleinstanz mehrmals zurück, wenn sie zwischengespeichert wurde. getBundle Clients können den Cache löschen, die Lebensdauer von zwischengespeicherten Ressourcenbundleinstanzen mithilfe von Zeit-zu-Live-Werten verwalten oder keine Ressourcenbundleinstanzen zwischenspeichern. Weitere Informationen finden Sie in den Beschreibungen der #getBundle code <>getBundle</code> factory method, , #clearCache(ClassLoader) clearCacheControl#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLiveund Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload weitere Informationen.

<h3>(Beispiel</h3)>

Es folgt ein sehr einfaches Beispiel für eine ResourceBundle Unterklasse, MyResourcesdie zwei Ressourcen verwaltet (für eine größere Anzahl von Ressourcen, die Sie wahrscheinlich verwenden Mapwürden). 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 haben, ExceptionResources (ExceptionResources_fr, ExceptionResources_de, ...) und eine für Widgets, WidgetResource (WidgetResources_fr, WidgetResources_de, ...); die Ressourcen aufteilen, wie Sie möchten.

In 1.1 hinzugefügt.

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

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Name Beschreibung
ResourceBundle()

Alleiniger Konstruktor.

ResourceBundle(IntPtr, JniHandleOwnership)

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

Eigenschaften

Name Beschreibung
BaseBundleName

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

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
JniPeerMembers

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

Keys

Gibt die Namen der in dieser ResourceBundleRessource enthaltenen Ressourcen zurück.

Locale

Gibt das Gebietsschema dieses Ressourcenpakets zurück.

Parent

Das übergeordnete Bündel dieses Bündels.

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(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

Name Beschreibung
ClearCache()

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

ClearCache(ClassLoader)

Entfernt alle Ressourcenbündel aus dem Cache, die vom angegebenen Klassenladeprogramm geladen wurden.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
ContainsKey(String)

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

Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
DisposeUnlessReferenced()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
Equals(Object)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
Equals(Object)

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

(Geerbt von Object)
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control)

Ruft ein Ressourcenbundle mit dem angegebenen Basisnamen, dem Standardgebietsschema und dem Klassenladeprogramm des Aufrufers ab.

GetBundle(String, Locale, ClassLoader)

Ruft ein Ressourcenbundle mit dem angegebenen Basisnamen, Gebietsschema und Klassenladeprogramm ab.

GetBundle(String, Locale, ResourceBundle+Control)

Ruft ein Ressourcenbundle mit dem angegebenen Basisnamen, dem Standardgebietsschema und dem Klassenladeprogramm des Aufrufers ab.

GetBundle(String, Locale)

Ruft ein Ressourcenbundle mit dem angegebenen Basisnamen und Gebietsschema und dem Klassenladeprogramm des Aufrufers ab.

GetBundle(String, ResourceBundle+Control)

Ruft ein Ressourcenbundle mit dem angegebenen Basisnamen, dem Standardgebietsschema und dem Klassenladeprogramm des Aufrufers ab.

GetBundle(String)

Ruft ein Ressourcenbundle mit dem angegebenen Basisnamen, dem Standardgebietsschema und dem Klassenladeprogramm 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 Ressourcenbundle oder einem seiner übergeordneten Elemente ab.

GetString(String)

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

GetStringArray(String)

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

HandleGetObject(String)

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

HandleKeySet()

Gibt eine Set der Schlüssel zurück<, die nur em></em> enthalten sind.ResourceBundle

JavaFinalize()

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

(Geerbt von Object)
KeySet()

Gibt einen 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.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

(Geerbt von JavaObject)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ressourcenbündel enthalten gebietsschemaspezifische Objekte.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: