ResourceBundle クラス

定義

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

[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
継承
ResourceBundle
派生
属性

注釈

リソース バンドルには、ロケール固有のオブジェクトが含まれています。 たとえば、 String プログラムにロケール固有のリソースが必要な場合、プログラムは現在のユーザーのロケールに適したリソース バンドルから読み込むことができます。 これにより、リソース バンドル内のロケール固有の情報のほとんど (すべてではないにしても) を分離するユーザーのロケールに大きく依存しないプログラム コードを記述できます。

これにより、UL>LI をさまざまな言語<に簡単にローカライズまたは翻訳できるプログラム<を記述できます。LI> は、一度に複数のロケールを一度<>に処理し、後で簡単に変更して、さらに多くのロケール </UL をサポートできます><>

リソース バンドルは、メンバーが共通の基本名を共有しているが、その名前にはロケールを識別する追加のコンポーネントも含まれるファミリに属します。 たとえば、リソース バンドルのファミリの基本名は"MyResources" である場合があります。 ファミリには、ファミリと同じ名前 ("MyResources" ) を持つ既定のリソース バンドルが必要です。特定のロケールがサポートされていない場合は、最後のリゾートのバンドルとして使用されます。 その後、ファミリは、必要に応じてロケール固有のメンバー ("MyResources_de" という名前のドイツ人メンバーなど) を提供できます。

ファミリ内の各リソース バンドルには同じアイテムが含まれていますが、そのアイテムは、そのリソース バンドルによって表されるロケール用に翻訳されています。 たとえば、"MyResources" と "MyResources_de" の両方に、操作を取り消すボタンで使用される が含まれる場合があります String 。 "MyResources" では、 String に "Cancel" を含め、"MyResources_de" には "Abbrechen" が含まれる場合があります。

国ごとに異なるリソースがある場合は、特殊化を行うことができます。たとえば、"MyResources_de_CH" にはスイス (CH) のドイツ語 (de) のオブジェクトが含まれています。 特殊化の一部のリソースのみを変更する場合は、変更できます。

プログラムでロケール固有のオブジェクトが必要な場合は、 メソッド <blockquote をResourceBundle使用して クラスを#getBundle(java.lang.String, java.util.Locale) getBundle読み込みます。>

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

</blockquote>

リソース バンドルには、キーと値のペアが含まれています。 キーは、バンドル内のロケール固有のオブジェクトを一意に識別します。 2 つのキーと値のペアを含む の ListResourceBundle 例を次に示します。 <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> キーは常に Strings です。 この例では、キーは "OkKey" と "CancelKey" です。 上記の例では、値も Strings--"OK" と "Cancel"--ですが、そうである必要はありません。 値には、任意の種類のオブジェクトを指定できます。

適切な getter メソッドを使用して、リソース バンドルからオブジェクトを取得します。 "OkKey" と "CancelKey" は両方とも文字列であるため、それらを<取得するには blockquote を使用getStringします。>

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

</blockquote> getter メソッドはすべて引数としてキーを必要とし、見つかった場合は オブジェクトを返します。 オブジェクトが見つからない場合、getter メソッドは を MissingResourceExceptionスローします。

に加getStringResourceBundleえて、getStringArray文字列配列を取得するためのメソッド、および他の種類のオブジェクトのジェネリック getObject メソッドも提供します。 を使用 getObjectする場合は、結果を適切な型にキャストする必要があります。 例: <blockquote>

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

</blockquote>

Java プラットフォームには、 と の ResourceBundleListResourceBundle 2 つのサブクラスが用意されていますPropertyResourceBundle。これは、リソースを作成する非常に簡単な方法を提供します。 前の例で簡単に説明したように、 ListResourceBundle そのリソースはキーと値のペアの一覧として管理されます。 PropertyResourceBundle では、プロパティ ファイルを使用してそのリソースを管理します。

必要に応じて、またはPropertyResourceBundleニーズに合わない場合ListResourceBundleは、独自ResourceBundleのサブクラスを記述できます。 サブクラスは、 と getKeys()の 2 つのメソッドをオーバーライドするhandleGetObject必要があります。

サブクラスを複数のスレッドで ResourceBundle 同時に使用する場合、サブクラスの実装はスレッド セーフである必要があります。 このクラスの非抽象メソッドの既定の実装と、直接の既知の具象サブクラス ListResourceBundle 内の メソッドと PropertyResourceBundle はスレッド セーフです。

<h3>ResourceBundle.Control</h3>

クラスは ResourceBundle.Control 、インスタンスを取得するファクトリ メソッドによってバンドルの読み込みプロセスを getBundle 実行するために必要な情報を ResourceBundle.Control 提供します。 標準以外のリソース バンドル形式を有効にしたり、検索戦略を変更したり、キャッシュ パラメーターを定義したりするために、独自のサブクラスを実装できます。 詳細については、 クラスとファクトリ メソッドの #getBundle(String, Locale, ClassLoader, Control) getBundle 説明を参照してください。

<h3>キャッシュ管理</h3>

ファクトリ メソッドによって getBundle 作成されたリソース バンドル インスタンスは既定でキャッシュされ、ファクトリ メソッドはキャッシュされている場合に同じリソース バンドル インスタンスを複数回返します。 getBundle クライアントは、キャッシュをクリアしたり、キャッシュされたリソース バンドル インスタンスの有効期間を Time-to-Live 値を使用して管理したり、リソース バンドル インスタンスをキャッシュしないように指定したりできます。 詳細については、#getBundle(String、Locale、ClassLoader、Control) <コード>getBundle</code> factory メソッド、、、#clearCache(ClassLoader) clearCacheControl#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLiveおよび Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload の説明を参照してください。

<h3>Example</h3>

2 つのリソースを ResourceBundle 管理するサブクラス MyResourcesの非常に単純な例を次に示します (より多くのリソースの場合は、 Mapを使用する可能性があります)。 "親レベル" ResourceBundle が同じ値を持つ同じキーを処理する場合は、値を指定する必要はありません (以下の 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> 単一のファミリを ResourceBundle使用するように自分自身を制限する必要はありません。 たとえば、例外メッセージ (、ExceptionResources_de...) のバンドルのセットと、 ExceptionResources ウィジェット用のバンドル (WidgetResources_frExceptionResources_frWidgetResourceWidgetResources_de...)、リソースを好きなように分割することができます。

1.1 で追加されました。

の Java ドキュメント java.util.ResourceBundle

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

ResourceBundle()

唯一のコンストラクター。

ResourceBundle(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

BaseBundleName

既知の場合、または null 不明な場合は、このバンドルの基本名を返します。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
JniPeerMembers

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

Keys

この ResourceBundleに含まれるリソースの名前を返します。

Locale

このリソース バンドルのロケールを返します。

Parent

このバンドルの親バンドル。

PeerReference

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

メソッド

ClearCache()

呼び出し元のクラス ローダーを使用して読み込まれたキャッシュからすべてのリソース バンドルを削除します。

ClearCache(ClassLoader)

指定されたクラス ローダーによって読み込まれたすべてのリソース バンドルをキャッシュから削除します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
ContainsKey(String)

指定 key された がこの ResourceBundle バンドルまたはその親バンドルに含まれているかどうかを判断します。

Dispose()

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
Dispose(Boolean)

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetBundle(String)

指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。

GetBundle(String, Locale)

指定した基本名とロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。

GetBundle(String, Locale, ClassLoader)

指定した基本名、ロケール、およびクラス ローダーを使用してリソース バンドルを取得します。

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

指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。

GetBundle(String, Locale, ResourceBundle+Control)

指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。

GetBundle(String, ResourceBundle+Control)

指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetObject(String)

このリソース バンドルまたはその親の 1 つから、指定されたキーのオブジェクトを取得します。

GetString(String)

このリソース バンドルまたはその親の 1 つから、指定されたキーの文字列を取得します。

GetStringArray(String)

このリソース バンドルまたはその親の 1 つから、指定されたキーの文字列配列を取得します。

HandleGetObject(String)

このリソース バンドルから、指定されたキーの オブジェクトを取得します。

HandleKeySet()

Setこの ResourceBundleに含まれる <em>のみ</em> キーの を返します。

JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
KeySet()

SetこのResourceBundleおよび親バンドルに含まれるすべてのキーの を返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetParent(ResourceBundle)

このバンドルの親バンドルを設定します。

ToArray<T>()

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
IJavaPeerable.Finalized()

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

GetJniTypeName(IJavaPeerable)

リソース バンドルには、ロケール固有のオブジェクトが含まれています。

適用対象