Share via


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 > 一次 < 處理多個地區設定 LI > ,稍後可以輕鬆地修改以支援更多地區 < 設定 /UL ><<>

資源配套屬於成員共用通用基底名稱但名稱也有識別其地區設定的其他元件系列。 例如,一系列資源套件組合的基底名稱可能是 「MyResources」。 此系列應具有預設資源配套,其名稱與其系列相同 - 「MyResources」 ,而且如果不支援特定地區設定,則會當做最後一個方法的配套使用。 接著,此系列可以視需要提供許多地區設定特定成員,例如名為 「MyResources_de」 的德文成員。

系列中的每個資源配套都包含相同的專案,但已針對該資源配套所代表的地區設定轉譯專案。 例如,「MyResources」 和 「MyResources_de」 在 String 取消作業的按鈕上使用 。 在 「MyResources」 中, String 可能包含 「Cancel」,而 「MyResources_de」 中可能包含 「Abbrechen」。

如果不同國家/地區有不同的資源,您可以進行特製化:例如,「MyResources_de_CH」 包含瑞士 (CH) 中德文語言 (de) 的物件。 如果您只想修改特製化中的某些資源,您可以這麼做。

當您的程式需要地區設定特定物件時,它會使用 #getBundle(java.lang.String, java.util.Locale) getBundle 方法載入 ResourceBundle 類別: < blockquote>

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

</blockquote>

資源配套包含索引鍵/值組。 索引鍵可唯一識別套件組合中的地區設定特定物件。 以下是包含兩個索引鍵/值組的 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 > 索引鍵一律 String 為 。 在此範例中,索引鍵為 「OkKey」 和 「CancelKey」。 在上述範例中,這些值也是 String s--「OK」 和 「Cancel」--,但不需要。 這些值可以是任何類型的物件。

您可以使用適當的 getter 方法,從資源組合擷取物件。 因為 「OkKey」 和 「CancelKey」 都是字串,所以您可以使用 getString 來擷取它們: < blockquote>

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

</blockquote > getter 方法全都需要索引鍵做為引數,並在找到時傳回物件。 如果找不到物件,getter 方法會 MissingResourceException 擲回 。

getString此外, ResourceBundle 也提供取得字串陣列的方法, getStringArray 以及任何其他物件類型的泛型 getObject 方法。 使用 getObject 時,您必須將結果轉換成適當的類型。 例如: < blockquote>

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

</blockquote>

JAVA 平臺提供 和 的 ResourceBundleListResourceBundlePropertyResourceBundle 兩個子類別,提供相當簡單的方法來建立資源。 如您在上一個範例 ListResourceBundle 中所見,將其資源當做索引鍵/值組的清單來管理。 PropertyResourceBundle 會使用屬性檔來管理其資源。

如果 ListResourceBundlePropertyResourceBundle 不符合您的需求,您可以撰寫自己的 ResourceBundle 子類別。 您的子類別必須覆寫兩個方法: handleGetObjectgetKeys()

如果子類別同時供多個執行緒使用,則子類別的 ResourceBundle 實作必須是安全線程。 這個類別中非抽象方法的預設實作,以及直接已知具象子類別 ListResourceBundle 中的方法,而且 PropertyResourceBundle 是安全線程。

<h3 > ResourceBundle.Control < /h3>

類別 ResourceBundle.Control 提供由採用 ResourceBundle.Control 實例之 getBundle 處理站方法執行套件組合載入程式所需的資訊。 您可以實作自己的子類別,以啟用非標準資源組合格式、變更搜尋策略或定義快取參數。 如需詳細資訊,請參閱 類別和 #getBundle(String, Locale, ClassLoader, Control) getBundle Factory 方法的描述。

<h3 > 快取管理 < /h3>

預設會快取 Factory 方法所 getBundle 建立的資源配套實例,而且如果已快取,Factory 方法會多次傳回相同的資源配套實例。 getBundle 用戶端可能會清除快取、使用存留時間值管理快取資源配套實例的存留期,或指定不要快取資源配套實例。 如需詳細資訊,請參閱 #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 > 範例 < /h3>

以下是一個非常簡單的子類別範例 ResourceBundleMyResources 其會針對您可能會使用 Map) 的較大資源管理兩個資源 (。 請注意,如果 「parent-level」 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 (ExceptionResources_frExceptionResources_de ...) ,以及一組用於小工具的套件組合, WidgetResource (WidgetResources_frWidgetResources_de ...) ;您可以視需要分割資源。

已在 1.1 中新增。

java.util.ResourceBundle JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

建構函式

ResourceBundle()

唯一建構函式。

ResourceBundle(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。

屬性

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)

從這個資源組合或其其中一個父系取得指定索引鍵的 物件。

GetString(String)

從此資源組合或其其中一個父系取得指定索引鍵的字串。

GetStringArray(String)

從這個資源組合或其其中一個父系取得指定索引鍵的字串陣列。

HandleGetObject(String)

從這個資源組合取得指定索引鍵的 物件。

HandleKeySet()

Set 回這個 ResourceBundle 中只 < 包含 < em > /em > 之索引鍵的 。

JavaFinalize()

當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。

(繼承來源 Object)
KeySet()

Set 回這個 ResourceBundle 及其父系組合中所有索引鍵的 。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetParent(ResourceBundle)

設定這個套件組合的父系組合。

ToArray<T>()

資源配套包含地區設定特定的物件。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

資源配套包含地區設定特定的物件。

(繼承來源 Object)
Wait()

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 ><

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /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)

資源配套包含地區設定特定的物件。

適用於