我有一个字符串就像String data="apps";
我知道在Android中以两种方式加载String ..
第一个是
因此它是一个常量,我将其定义为
public static final String data="apps";
另一种类型是在res/vslues/strings.xml
文件中对其进行定义,如..
<string name="data">apps</string>
<string name="hello_world">Hello world!</string>
如果我想使用它..
第一种方式ClassName.data
第二种方式context.getResources().getString(resourceid)
问题:
所以现在我的问题是我想在不同的类中使用相同的
String
30次。并且我有更多的变量。因此在上述方法中加载速度更快并占用更少的内存。
答案 0 :(得分:10)
然而,在任何一种情况下,速度都不应该成为问题。我建议根据有意义的事情进行组织。
常量类
放置将在内部使用的字符串常量,例如数据库列名或其他键。
<强>的strings.xml 强>
输入为用户显示的字符串。这样您就可以利用本地化等。
根据要求,您应该更喜欢第二种方法意味着XML 基于
答案 1 :(得分:1)
XML字符串值是指可以根据区域设置覆盖的显示字符串。这样,您可以通过常量键来引用可翻译的显示值。
答案 2 :(得分:1)
您应该考虑使用XML字符串作为向用户显示内容并根据区域设置进行更改的方式。
永远不要使用public static final String data="apps";
来隐藏一些非用户数据,如数据库连接,日志消息等。
答案 3 :(得分:0)
我认为速度和内存使用率是相同的。类中的常量就像string.xml中的常量一样,该常量存储一次,并在您需要在其他任何地方引用时进行引用。 但是,将string.xml存储在另一个文件中的好处是可以避免额外的代码导入行。同时,必须记住,使用string.xml存储时,只能在可访问活动上下文的地方使用它。
答案 4 :(得分:-1)
我建议您利用Android资源系统。
引用书Android In Practice:
Resources in Android are efficient and fast. XML resources are compiled into a binary format. This makes them friendly at development time, without being slow at Runtime.