ResourceBundle Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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 String
s. In diesem Beispiel sind die Schlüssel "OkKey" und "CancelKey". Im obigen Beispiel sind die Werte auch String
s--"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 getString
eine Methode zum Abrufen von Zeichenfolgenarrays sowie getStringArray
eine generische getObject
Methode für jeden anderen Objekttyp. ResourceBundle
getObject
Wenn 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 ResourceBundle
und ListResourceBundle
PropertyResourceBundle
bereit, 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.getTimeToLive
und 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, MyResources
die zwei Ressourcen verwaltet (für eine größere Anzahl von Ressourcen würden Sie wahrscheinlich eine Map
verwenden. 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<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> Sie müssen sich nicht auf die Verwendung einer einzelnen Familie von ResourceBundle
s 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 |
Class |
Gibt die Laufzeitklasse dieses |
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 |
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 |
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 |
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 |
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. |