从Java Android代码访问string.xml资源文件


Answers:


149

好吧,您可以使用

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();  
}

当我使用getString(R。)时,此代码的<string-array name =“ planet”> <item>水星</ item> <item>金星</ item> <item>地球</ item> </ string-array> string.planets);
Ravikiran 2011年

我检查了您的答案,但出现了ForceClose错误。感谢您的帮助
Ravikiran 2011年

这是LOGCAT 08-27 20:16:04.844:错误/ AndroidRuntime(339):致命异常:主08-27 20:16:04.844:错误/ AndroidRuntime(339):java.lang.RuntimeException:无法启动活动ComponentInfo {com.string / com.string.string}:android.content.res.Resources $ NotFoundException:字符串资源ID#0x7f050000
Ravikiran 2011年

这是LOGCAT 08-27 20:16:04.844:错误/ AndroidRuntime(339):致命例外:主要08-27 20:16:04.844:错误/ AndroidRuntime(339):java.lang.RuntimeException:无法启动活动ComponentInfo {com.string / com.string.string}:android.content.res.Resources $ NotFoundException:字符串资源ID#0x7f050000 08-27 20:16:04.844:ERROR / AndroidRuntime(339):位于android.app.ActivityThread。 performLaunchActivity(ActivityThread.java:2663)
Ravikiran,2011年

1
请注意,getString()不是静态的。如果要将string.xml值分配给应用程序类的静态属性,请在类onCreate()中进行操作。
KrisWebDev 2014年

44

strings.xml:

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

活动:

getString(R.string.some_text);

@MByD那是我比你快的第一个提姆=)
迈克尔

<string-array name =“ planet”> <item>水星</ item> <item>金星</ item> <item>地球</ item> </ string-array>
Ravikiran 2011年

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>


2

如果您具有活动的上下文,请继续:

getString(R.string.app_name);

如果没有上下文,请尝试以下操作,您可以使用来从活动中获取上下文Constructor

mContext.getString(R.string.app_name);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.