ResourceBundle Kelas

Definisi

Bundel sumber daya berisi objek khusus lokal.

[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
Warisan
ResourceBundle
Turunan
Atribut

Keterangan

Bundel sumber daya berisi objek khusus lokal. Ketika program Anda memerlukan sumber daya khusus lokal, String misalnya, program Anda dapat memuatnya dari bundel sumber daya yang sesuai untuk lokal pengguna saat ini. Dengan cara ini, Anda dapat menulis kode program yang sebagian besar independen dari lokal pengguna yang paling mengisolasi, jika tidak semua, dari informasi khusus lokal dalam bundel sumber daya.

Ini memungkinkan Anda untuk menulis program yang dapat: <UL><LI> mudah dilokalkan, atau diterjemahkan, ke dalam bahasa <yang berbeda LI> menangani beberapa lokal sekaligus <LI> mudah dimodifikasi nanti untuk mendukung lebih banyak lokal </UL>

Bundel sumber daya milik keluarga yang anggotanya berbagi nama dasar umum, tetapi yang namanya juga memiliki komponen tambahan yang mengidentifikasi lokal mereka. Misalnya, nama dasar keluarga bundel sumber daya mungkin adalah "MyResources". Keluarga harus memiliki bundel sumber daya default yang hanya memiliki nama yang sama dengan keluarganya - "MyResources" - dan akan digunakan sebagai bundel upaya terakhir jika lokal tertentu tidak didukung. Keluarga kemudian dapat menyediakan anggota khusus lokal sebanyak yang diperlukan, misalnya orang Jerman bernama "MyResources_de".

Setiap bundel sumber daya dalam keluarga berisi item yang sama, tetapi item telah diterjemahkan untuk lokal yang diwakili oleh bundel sumber daya tersebut. Misalnya, "MyResources" dan "MyResources_de" mungkin memiliki String tombol yang digunakan pada tombol untuk membatalkan operasi. Di "MyResources" String mungkin berisi "Batal" dan dalam "MyResources_de" mungkin berisi "Singkatan".

Jika ada sumber daya yang berbeda untuk negara yang berbeda, Anda dapat membuat spesialisasi: misalnya, "MyResources_de_CH" berisi objek untuk bahasa Jerman (de) di Swiss (CH). Jika Anda hanya ingin memodifikasi beberapa sumber daya dalam spesialisasi, Anda dapat melakukannya.

Ketika program Anda membutuhkan objek khusus lokal, program memuat ResourceBundle kelas menggunakan #getBundle(java.lang.String, java.util.Locale) getBundle metode: <blockquote>

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

</blockquote>

Bundel sumber daya berisi pasangan kunci/nilai. Kunci secara unik mengidentifikasi objek khusus lokal dalam bundel. Berikut adalah contoh ListResourceBundle yang berisi dua pasangan kunci/nilai: <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
                   };
                }
            }

<Kunci /blockquote> selalu Strings. Dalam contoh ini, kuncinya adalah "OkKey" dan "CancelKey". Dalam contoh di atas, nilainya juga Strings--"OK" dan "Batal"--tetapi tidak harus. Nilai dapat berupa semua jenis objek.

Anda mengambil objek dari bundel sumber daya menggunakan metode getter yang sesuai. Karena "OkKey" dan "CancelKey" adalah kedua string, Anda akan menggunakan getString untuk mengambilnya: <blockquote>

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

</blockquote> Metode getter semuanya memerlukan kunci sebagai argumen dan mengembalikan objek jika ditemukan. Jika objek tidak ditemukan, metode getter akan melempar .MissingResourceException

getStringSelain itu , ResourceBundle juga menyediakan metode untuk mendapatkan array string, getStringArray, serta metode generik getObject untuk jenis objek lainnya. Saat menggunakan getObject, Anda harus melemparkan hasilnya ke jenis yang sesuai. Misalnya: <blockquote>

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

</blockquote>

Platform Java menyediakan dua subkelas ResourceBundle, ListResourceBundle dan PropertyResourceBundle, yang menyediakan cara yang cukup sederhana untuk membuat sumber daya. Seperti yang Anda lihat secara singkat dalam contoh sebelumnya, ListResourceBundle mengelola sumber dayanya sebagai daftar pasangan kunci/nilai. PropertyResourceBundle menggunakan file properti untuk mengelola sumber dayanya.

Jika ListResourceBundle atau PropertyResourceBundle tidak sesuai dengan kebutuhan Anda, Anda dapat menulis subkelas Anda sendiri ResourceBundle . Subkelas Anda harus mengambil alih dua metode: handleGetObject dan getKeys().

Implementasi ResourceBundle subkelas harus aman utas jika digunakan secara bersamaan oleh beberapa utas. Implementasi default dari metode non-abstrak di kelas ini, dan metode dalam subkelas beton langsung yang diketahui dan ListResourceBundle aman untuk utasPropertyResourceBundle.

<h3>ResourceBundle.Control</h3>

Kelas ResourceBundle.Control ini menyediakan informasi yang getBundle diperlukan untuk melakukan proses pemuatan bundel dengan ResourceBundle.Control metode pabrik yang mengambil instans. Anda dapat menerapkan subkelas Anda sendiri untuk mengaktifkan format bundel sumber daya non-standar, mengubah strategi pencarian, atau menentukan parameter penembolokan. Lihat deskripsi kelas dan #getBundle(String, Locale, ClassLoader, Control) getBundle metode pabrik untuk detailnya.

<h3>Cache Management</h3>

Instans bundel sumber daya yang dibuat oleh getBundle metode pabrik di-cache secara default, dan metode pabrik mengembalikan instans bundel sumber daya yang sama beberapa kali jika telah di-cache. getBundle klien dapat menghapus cache, mengelola masa pakai instans bundel sumber daya yang di-cache menggunakan nilai time-to-live, atau menentukan untuk tidak menyimpan instans bundel sumber daya. Lihat deskripsi metode<#getBundle(String, Locale, ClassLoader, Control) >getBundle</code> factory, #clearCache(ClassLoader) clearCache, Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive, dan Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload untuk detailnya.

<Contoh> h3</h3>

Berikut ini adalah contoh yang ResourceBundle sangat sederhana dari subkelas, MyResources, yang mengelola dua sumber daya (untuk jumlah sumber daya yang lebih besar, Anda mungkin akan menggunakan Map). Perhatikan bahwa Anda tidak perlu memberikan nilai jika "tingkat induk" ResourceBundle menangani kunci yang sama dengan nilai yang sama (seperti untuk okKey di bawah). <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> Anda tidak perlu membatasi diri untuk menggunakan satu keluarga ResourceBundle. Misalnya, Anda dapat memiliki sekumpulan bundel untuk pesan pengecualian, (ExceptionResources, ExceptionResources_frExceptionResources_de, ...), dan satu untuk widget, (WidgetResource, WidgetResources_frWidgetResources_de, ...); memecah sumber daya sesuka Anda.

Ditambahkan dalam 1.1.

Java dokumentasi untuk java.util.ResourceBundle.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Konstruktor

Nama Deskripsi
ResourceBundle()

Satu-satu konstruktor.

ResourceBundle(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

Properti

Nama Deskripsi
BaseBundleName

Mengembalikan nama dasar bundel ini, jika diketahui, atau null jika tidak diketahui.

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
JniPeerMembers

Bundel sumber daya berisi objek khusus lokal.

Keys

Mengembalikan nama sumber daya yang terkandung dalam .ResourceBundle

Locale

Mengembalikan lokal bundel sumber daya ini.

Parent

Bundel induk bundel ini.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
ClearCache()

Menghapus semua bundel sumber daya dari cache yang telah dimuat menggunakan pemuat kelas pemanggil.

ClearCache(ClassLoader)

Menghapus semua bundel sumber daya dari cache yang telah dimuat oleh pemuat kelas yang diberikan.

Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
ContainsKey(String)

Menentukan apakah yang diberikan key terkandung dalam bundel ini ResourceBundle atau induknya.

Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
Equals(Object)

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control)

Mendapatkan bundel sumber daya menggunakan nama dasar yang ditentukan, lokal default, dan pemuat kelas pemanggil.

GetBundle(String, Locale, ClassLoader)

Mendapatkan bundel sumber daya menggunakan nama dasar, lokal, dan pemuat kelas yang ditentukan.

GetBundle(String, Locale, ResourceBundle+Control)

Mendapatkan bundel sumber daya menggunakan nama dasar yang ditentukan, lokal default, dan pemuat kelas pemanggil.

GetBundle(String, Locale)

Mendapatkan bundel sumber daya menggunakan nama dasar dan lokal yang ditentukan, dan pemuat kelas pemanggil.

GetBundle(String, ResourceBundle+Control)

Mendapatkan bundel sumber daya menggunakan nama dasar yang ditentukan, lokal default, dan pemuat kelas pemanggil.

GetBundle(String)

Mendapatkan bundel sumber daya menggunakan nama dasar yang ditentukan, lokal default, dan pemuat kelas pemanggil.

GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
GetObject(String)

Mendapatkan objek untuk kunci yang diberikan dari bundel sumber daya ini atau salah satu induknya.

GetString(String)

Mendapatkan string untuk kunci yang diberikan dari bundel sumber daya ini atau salah satu induknya.

GetStringArray(String)

Mendapatkan array string untuk kunci yang diberikan dari bundel sumber daya ini atau salah satu induknya.

HandleGetObject(String)

Mendapatkan objek untuk kunci yang diberikan dari bundel sumber daya ini.

HandleKeySet()

Mengembalikan Set kunci yang berisi <em>saja</em> dalam ini ResourceBundle.

JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
KeySet()

Mengembalikan Set dari semua kunci yang terkandung dalam bundel ini ResourceBundle dan induknya.

Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetParent(ResourceBundle)

Mengatur bundel induk bundel ini.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Bundel sumber daya berisi objek khusus lokal.

(Diperoleh dari JavaObject)

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

Bundel sumber daya berisi objek khusus lokal.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk