我看了很多东西,但似乎我的App没有在strings.xml中获取字符串的值。它实际上似乎是空白。我认为初始化存在问题。
的strings.xml
<string name="itb_cityID">2</string>
<string name="itb_city">New York</string>
constants.java excerpt:
public class ConstantData {
public static String cityID="2";
public static String city="New York";
如何设置cityID = R.strings.itb_cityID
和city=itb_city
正确方法?
答案 0 :(得分:13)
String yourString = Context.getResources().getString(R.string.your_string);
注意:您无法静态使用Context
。如果您在活动中,只需使用this
或直接致电getResources()
即可。否则,您需要通过getApplicationContext()
获取应用程序上下文的句柄。
答案 1 :(得分:7)
这个例子很有用
保存在res / values / strings.xml的XML文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello!</string> </resources>
此布局XML将字符串应用于视图
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
此应用程序代码检索字符串:
String string = getString(R.string.hello);
您可以使用getString(int)或getText(int)来检索字符串。 getText(int)将保留应用于字符串的任何富文本样式。
此示例来自http://developer.android.com/guide/topics/resources/string-resource.html
答案 2 :(得分:0)
您是否检查过整个项目没有错误。如果不是,则可能存在阻止R.java使用您的字符串更新的错误。你可以尝试&#34;清洁&#34;你从&#34;项目&#34;菜单。这可能有用。此外,我无法理解为什么你必须使用Context.
,通常你应该能够直接调用getResources().
(在某些情况下,即使这是不必要的)。要查找的一件好事是,您在strings.xml文件中声明的字符串是否被识别为声明的字符串。