Android java,使用getString()从string.xml导入字符串时出错

Posted

技术标签:

【中文标题】Android java,使用getString()从string.xml导入字符串时出错【英文标题】:Android java, error during import of string from string.xml with getString() 【发布时间】:2015-10-23 12:23:35 【问题描述】:

我有问题。 我正在创建一个在单元格中存储数据的应用程序,但首先创建一个包含各种文件的文件夹。此文件夹将包含应用程序的名称,但此时仍会收到错误消息。

原因:android.content.res.Resources$NotFoundException:字符串资源 ID #0x7f060014

班级是:

public class Config 

private Properties configuration;
public static String root = Resources.getSystem().getString((R.string.app_name)) + "_data_file";
public File cartella = new File(Environment.getExternalStorageDirectory() + "/Android/obb/"+ root);
private String configurationFile = Environment.getExternalStorageDirectory() + "/Android/obb/"+ root  + "/config.ini";

而 String.xml 是:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Il Maestro</string>
    <string name="homefrontextb">Per iniziare,completa il modulo.</string>
    <string name="homefrontext">Per iniziare,seleziona la tua lingua.</string>
    <string name="action_settings">Settings</string>
    <string name="sondaggiopub">Come hai conosciuto quest\' app?</string>
    <string name="Pubblicita">Pubblicità</string>
    <string name="socialnetwork">Social Network</string>
    <string name="amici">Consigliata dagli amici</string>
    <string name="store">Visita casuale sullo store</string>
    <string name="namehome">Nome</string>
    <string name="cognomehome">Cognome</string>
    <string name="nickhome">Nickname</string>
    <string name="emailhome">Email</string>
</resources>

但是,当我尝试将字符串作为 int 获取时,它可以工作,并且我得到数字“2131099668”

请帮帮我,我快疯了..

【问题讨论】:

尝试从 Resources.getSystem() 更改为 getResources()。 【参考方案1】:

Resources.getSystem() 检索系统的资源,而不是您应用的特定资源。来自文档

返回一个全局共享资源对象,该对象仅提供对 系统资源(无应用程序资源),并且未配置为 当前屏幕(不能使用尺寸单位,不改变基于 关于方向等)。

您需要应用的上下文来访问您的特定资源

【讨论】:

写个代码例子,看不懂你的意思。 我已经解决了...非常感谢!!!它已经声明了一个带有上下文的函数并在 main 中调用了方法!!!谢谢你救了我的命哈哈哈

以上是关于Android java,使用getString()从string.xml导入字符串时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 上将 getString 与 JSONObject 类一起使用时获取 null

Android用getString值初始化一个String []?

java 要在Java的代码中,直接访问该资源,只需使用getResources.getString或的getString方法来访问给定的资源ID值:

java 要在Java的代码中,直接访问该资源,只需使用getResources.getString或的getString方法来访问给定的资源ID值:

java 要在Java的代码中,直接访问该资源,只需使用getResources.getString或的getString方法来访问给定的资源ID值:

Android Widget Bundle getString 显示为空