Akses File Sumber Daya string.xml dari Java Android Code

109

Bagaimana Anda mengakses nilai dalam res/values/string.xmlfile sumber daya dari Android Activity class?

Ravikiran
sumber

Jawaban:

149

Anda bisa mendapatkan String menggunakan,

getString(R.string.app_name);

Dan, Anda bisa mendapatkan string-array menggunakan

String arr[] = getResources().getStringArray(R.array.planet);
for (int i = 0; i < arr.length; i++) {
        Toast.makeText(getBaseContext(),arr[i], Toast.LENGTH_LONG).show();  
}
Lalit Poptani
sumber
<string-array name = "planet"> <item> Mercury </item> <item> Venus </item> <item> <item> </item> </string-array> untuk kode ini saat saya menggunakan getString (R. string.planets);
Ravikiran
Saya memeriksa jawaban Anda tetapi saya mendapat kesalahan ForceClose. Terima kasih telah membantu
Ravikiran
INI ADALAH LOGCAT 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): FATAL EXCEPTION: main 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): java.lang.RuntimeException: Tidak dapat memulai aktivitas ComponentInfo {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: ID resource String # 0x7f050000
Ravikiran
INI ADALAH LOGCAT 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): FATAL EXCEPTION: main 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): java.lang.RuntimeException: Tidak dapat memulai aktivitas ComponentInfo {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: ID resource String # 0x7f050000 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): di android.app.ActivityThread. performLaunchActivity (ActivityThread.java:2663)
Ravikiran
1
Perhatikan bahwa getString () tidak statis. Jika Anda ingin menetapkan nilai string.xml ke properti statis kelas aplikasi Anda, lakukan di kelas onCreate ().
KrisWebDev
44

strings.xml:

<string name="some_text">Some Text</string>

Aktivitas:

getString(R.string.some_text);
Ollie C
sumber
@MByD Itu tim pertama saya lebih cepat dari Anda =)
Michael
<string-array name = "planet"> <item> Merkuri </item> <item> Venus </item> <item>Earth</item> </string-array>
Ravikiran
16

Masukkan kode ini res/values/string.xml

<string-array name="planet"> 
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
</string-array>

Kode ini untuk ditempatkan res/layout/main.xmldan menghapus widget default yang ada di main.xml.

<ListView android:id="@+id/planet"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:entries="@array/planet"/>
</LinearLayout>
Ravikiran
sumber
15

Jika getString (R.string.app_name); tidak berfungsi untuk Anda, Anda dapat menyampaikan konteks seperti ini:

context.getString(R.string.app_name);
Pritesh Desai
sumber
2

Jika Anda memiliki konteks Aktivitas, lanjutkan dengan:

getString(R.string.app_name);

Jika Anda tidak memiliki konteksnya, coba di bawah ini, Anda bisa mendapatkan konteks dari aktivitas menggunakan Constructor.

mContext.getString(R.string.app_name);
gauravsngarg
sumber