首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中保存长文本的最佳实践

在Android中保存长文本的最佳实践
EN

Stack Overflow用户
提问于 2016-04-14 02:34:12
回答 2查看 3.3K关注 0票数 5

我想知道在strings.xml文件中存储字符串值是否总是最佳实践,即使字符串非常大。更具体的说,我有一个游戏,我展示游戏的规则。所有字符之和大于700个字符。目前,我把这些长串分解成较小的字符串(段落)。所以我想知道,长串包含700多个字符会被认为是一种良好的练习吗?我知道堆大小必须考虑可以处理多少字符,但我怀疑您是否容易达到极限。从我读到的Java的限制设置为(2^31 - 1)字符,而在Android中则设置为4-64百万字符。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-14 02:58:47

我认为在xml中存储字符串没有上限,所以在那里存储字符串是最方便的。

如果真的想使用不同的机制,可以选择数据库,也可以选择文件。但是,与从xml文件读取相比,从数据库和文件中读取数据需要时间,并且需要更多代码才能实现相同的目标。

编辑:

我刚刚注意到,你所指的字符串是游戏规则。因此,我强烈建议使用strings.xml,因为android使用XML将应用程序翻译成不同的语言。

来自本土化的官方指南:

将所有字符串移动到strings.xml中。当您构建应用程序时,请记住不要硬编码任何字符串。相反,将所有字符串声明为默认strings.xml文件中的资源,这使得更新和本地化变得非常容易。strings.xml文件中的字符串可以提取、翻译和集成回您的应用程序(带有适当的限定符),而无需对编译的代码进行任何更改。

票数 3
EN

Stack Overflow用户

发布于 2016-04-14 02:54:56

您可以使用文本文件并在要显示规则文本时读取该文件,而不是在strings.xml中保存所有长字符串。

布局文件如下所示:

代码语言:javascript
运行
复制
<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" 
/>

代码将会是这样的:

代码语言:javascript
运行
复制
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();
    }

这将是很容易维护和访问。如有需要,可作必要的修改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36612859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档