เข้าถึงไฟล์ทรัพยากร string.xml จาก Java Android Code


คำตอบ:


149

คุณสามารถใช้ String ได้โดยใช้

getString(R.string.app_name);

และคุณสามารถรับสตริงอาร์เรย์โดยใช้

String arr[] = getResources().getStringArray(R.array.planet);
for (int i = 0; i < arr.length; i++) {
        Toast.makeText(getBaseContext(),arr[i], Toast.LENGTH_LONG).show();  
}

<string-array name = "planet"> <item> Mercury </item> <item> Venus </item> <item>Earth</item> </string-array> สำหรับรหัสนี้ในขณะที่ฉันใช้ getString (R. string.planets);
Ravikiran

ฉันตรวจสอบคำตอบของคุณแล้ว แต่พบข้อผิดพลาด ForceClose ขอบคุณที่ช่วย
Ravikiran

นี่คือ 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: ไม่สามารถเริ่มกิจกรรม ComponentInfo {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: String resource ID # 0x7f050000
Ravikiran

นี่คือ 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: ไม่สามารถเริ่มกิจกรรม ComponentInfo {com.string / com.string.string}: android.content.res.Resources $ NotFoundException: String resource ID # 0x7f050000 08-27 20: 16: 04.844: ERROR / AndroidRuntime (339): ที่ android.app.ActivityThread PerformLaunchActivity (ActivityThread.java:2663)
Ravikiran

1
โปรดทราบว่า getString () ไม่คงที่ หากคุณต้องการกำหนดค่า string.xml ให้กับคุณสมบัติคงที่ของคลาสแอปของคุณให้ทำในคลาส onCreate () ของคุณ
KrisWebDev

44

strings.xml:

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

กิจกรรม:

getString(R.string.some_text);

@MByD นั่นเป็นครั้งแรกที่ฉันเร็วกว่าคุณ =)
Michael

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

16

ใส่รหัสนี้ res/values/string.xml

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

รหัสนี้จะอยู่ในและเริ่มต้นลบวิดเจ็ตในปัจจุบันres/layout/main.xmlmain.xml

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

15

ถ้า getString (R.string.app_name); ไม่ได้ผลสำหรับคุณคุณสามารถส่งผ่านบริบทเช่นนี้:

context.getString(R.string.app_name);

2

หากคุณมีบริบทของกิจกรรมให้ไปที่:

getString(R.string.app_name);

Constructorหากคุณไม่ได้มีบริบทลองด้านล่างนี้คุณจะได้รับจากบริบทกิจกรรมโดยใช้

mContext.getString(R.string.app_name);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.