我想知道在strings.xml
文件中存储字符串值是否总是最佳实践,即使字符串非常大。更具体的说,我有一个游戏,我展示游戏的规则。所有字符之和大于700个字符。目前,我把这些长串分解成较小的字符串(段落)。所以我想知道,长串包含700多个字符会被认为是一种良好的练习吗?我知道堆大小必须考虑可以处理多少字符,但我怀疑您是否容易达到极限。从我读到的Java的限制设置为(2^31 - 1)字符,而在Android中则设置为4-64百万字符。。
发布于 2016-04-14 02:58:47
我认为在xml中存储字符串没有上限,所以在那里存储字符串是最方便的。
如果真的想使用不同的机制,可以选择数据库,也可以选择文件。但是,与从xml文件读取相比,从数据库和文件中读取数据需要时间,并且需要更多代码才能实现相同的目标。
编辑:
我刚刚注意到,你所指的字符串是游戏规则。因此,我强烈建议使用strings.xml,因为android使用XML将应用程序翻译成不同的语言。
来自本土化的官方指南:
将所有字符串移动到strings.xml中。当您构建应用程序时,请记住不要硬编码任何字符串。相反,将所有字符串声明为默认strings.xml文件中的资源,这使得更新和本地化变得非常容易。strings.xml文件中的字符串可以提取、翻译和集成回您的应用程序(带有适当的限定符),而无需对编译的代码进行任何更改。
发布于 2016-04-14 02:54:56
您可以使用文本文件并在要显示规则文本时读取该文件,而不是在strings.xml
中保存所有长字符串。
布局文件如下所示:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_weight="1.0">
<TextView
android:id="@+id/subtitletv"
android:textSize="18dp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
代码将会是这样的:
subtitletv = (TextView)findViewById("R.id.helptext");
try {
FileReader fr=new FileReader(selectedfile);
BufferedReader br=new BufferedReader(fr);
String line = null;
try {
while((line = br.readLine()) != null)
{
subtitletv.append(line);
subtitletv.append("/n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这将是很容易维护和访问。如有需要,可作必要的修改。
https://stackoverflow.com/questions/36612859
复制相似问题