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

Posted

技术标签:

【中文标题】从 Java Android 代码访问 string.xml 资源文件【英文标题】:Access string.xml Resource File from Java Android Code 【发布时间】:2011-11-05 01:10:20 【问题描述】:

如何从 android Activity class 访问 res/values/string.xml 资源文件中的值?

【问题讨论】:

【参考方案1】:

strings.xml:

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

活动:

getString(R.string.some_text);

【讨论】:

@MByD 那是我第一次比你快=) 水星金星地球跨度> 【参考方案2】:

你可以使用 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();  

【讨论】:

MercuryVenusEarth我使用 getString(R.string.planets); 时的代码 我检查了您的答案,但出现 ForceClose 错误。感谢您的帮助 这是 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:无法启动活动 ComponentInfocom.string/com.string.string:android.content.res.Resources$NotFoundException:字符串资源 ID #0x7f050000 这是 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:无法启动活动 ComponentInfocom.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) 请注意 getString() 不是静态的。如果您想将 string.xml 值分配给应用程序类的静态属性,请在您的类 onCreate() 中执行。【参考方案3】:

将此代码放入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_
    android:layout_
    android:entries="@array/planet"/>
</LinearLayout>

【讨论】:

【参考方案4】:

如果 getString(R.string.app_name);不适合你,你可以像这样传递上下文:

context.getString(R.string.app_name);

【讨论】:

【参考方案5】:

如果您有 Activity 的上下文,请使用:

getString(R.string.app_name);

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

mContext.getString(R.string.app_name);

【讨论】:

以上是关于从 Java Android 代码访问 string.xml 资源文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Java/Android 访问 Unity 设置?

从操作脚本访问 android 通知服务

通过 Python 从 Android 访问 LogCat

如何从 java / android 中的嵌套 json 对象访问数据? [复制]

在Android中加载大文本

Java split函数的坑