Java Android 코드에서 string.xml 리소스 파일에 액세스


109

res/values/string.xmlAndroid에서 리소스 파일 의 값에 어떻게 액세스 Activity class합니까?

답변:


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> 수은 </ item> <item> Venus </ item> <item> 지구 </ item> </ string-array>를 사용하는 동안 getString (R. string.planets);
Ravikiran 2011-08-27

답변을 확인했지만 ForceClose 오류가 발생했습니다. 도와 주셔서 감사합니다
Ravikiran 2011-08-27

이것은 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 : Unable to start activity ComponentInfo {com.string / com.string.string} : android.content.res.Resources $ NotFoundException : 문자열 리소스 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 : Unable to start activity ComponentInfo {com.string / com.string.string} : android.content.res.Resources $ NotFoundException : 문자열 리소스 ID # 0x7f050000 08-27 20 : 16 : 04.844 : ERROR / AndroidRuntime (339) : at android.app.ActivityThread. performLaunchActivity (ActivityThread.java:2663)
Ravikiran 2011-08-27

1
getString ()은 정적이 아닙니다. 앱 클래스의 정적 속성에 string.xml 값을 할당하려면 onCreate () 클래스에서 수행합니다.
KrisWebDev 2014 년

44

strings.xml :

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

활동:

getString(R.string.some_text);

@MByD 그것은 내가 당신보다 더 빨랐던 첫 번째 팀입니다 =)
Michael

<string-array name = "planet"> <item> 수은 </ item> <item> 비너스 </ item> <item> 지구 </ 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.xml기본 위젯을 제거 main.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.