为什么在string.xml中添加字符串不会出现在R.java中?

时间:2014-04-10 22:06:23

标签: java android xml string

我在strings.xml中闲逛,我添加了一个字符串:" itemTag":

<string name="itemTag">1</string>

当我尝试通过R.string.itemTag访问活动中的字符串时,会弹出一个错误:

itemTag cannot be resolved or is not a field

我查看了R.java文件,但我找不到字符串。当我在string.xml中添加字符串时,是否有原因没有在文件中添加它,我该如何解决这个问题?

很抱歉,如果这是重复的,我在Google上找不到任何内容。

的strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="itemTag">1</string>
</resources>

编辑:

我不确定大多数观众是否理解,在所有id和字符串所在的R.java中(我假设),我找不到itemTag。它根本就不存在。我假设一旦我在string.xml中创建了一个字符串,该字符串也会自动弹出R.java,但它似乎并非如此。

6 个答案:

答案 0 :(得分:1)

使用getString方法:

String itemTagStr = getString(R.string.itemTag);

答案 1 :(得分:1)

您需要清理以及构建项目。在构建期间,应重新生成R.java并显示您的更改。

答案 2 :(得分:1)

确保您的string.xml位于res&gt; values&gt; string.xml中。否则,清理项目并重新打开正在使用的IDE。它会起作用。

答案 3 :(得分:0)

确保android.R未导入您的项目。删除此导入并导入实际的R文件。

Eclipse在创建新的Android项目时会自动导入android.R

答案 4 :(得分:0)

删除您的R.java文件。 转到Activity_main.xml并为API 17构建它,即Android 4.2.2。 现在做一个'清洁',看看你的R.java会重新生成,你会在文件中找到你新添加的字符串

答案 5 :(得分:0)

我在string.xml中创建了一个字符串,

<string name="itemTag">1</string>

然后重建项目,我在R.java中找到了它

public static final int itemTag=0x7f0b0021;

最后我在这里使用了它,没有错误

if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
Toast.makeText((//Context:) this, (//String) R.string.itemTag, Toast.LENGTH_SHORT).show();
}

我希望这会有所帮助。