Android 保存静态文本的最佳方法
我的应用程序使用了大量的静态文本,我正试图找到一种保存和显示这些文本的最佳方式。现在,我不需要把重点放在文本的本地化上,因此,所有的文本都会进入Android 保存静态文本的最佳方法,android,text-formatting,Android,Text Formatting,我的应用程序使用了大量的静态文本,我正试图找到一种保存和显示这些文本的最佳方式。现在,我不需要把重点放在文本的本地化上,因此,所有的文本都会进入strings.xml,这会带来很多格式方面的噩梦 当然,它不是100%的静态内容,我有时会在其中包含动态值,在我的例子中,动态值可以保留在strings.xml中。那么,保存此静态文本的正确方法是什么呢?静态文本内容正是您想要使用strings.xml的目的,您还可以自动获得更容易本地化的额外好处,因为您可以为不同的语言使用不同的strings.xml
strings.xml
,这会带来很多格式方面的噩梦
当然,它不是100%的静态内容,我有时会在其中包含动态值,在我的例子中,动态值可以保留在
strings.xml
中。那么,保存此静态文本的正确方法是什么呢?静态文本内容正是您想要使用strings.xml
的目的,您还可以自动获得更容易本地化的额外好处,因为您可以为不同的语言使用不同的strings.xml
。不需要更改代码,只需要不同的XML文件
动态内容将是根据用户输入而变化的内容。您仍然可以使用strings.xml
来存储动态内容的静态部分(如果有的话)。像“format”字符串一样,您可以传递到string.format()
或类似的内容
使用资源支持,这正是它想要做的(并且效率很高)。静态文本内容正是您想要使用的
strings.xml
,并且您会自动获得更容易本地化的额外好处,因为您可以为不同的语言使用不同的strings.xml
。不需要更改代码,只需要不同的XML文件
动态内容将是根据用户输入而变化的内容。您仍然可以使用strings.xml
来存储动态内容的静态部分(如果有的话)。像“format”字符串一样,您可以传递到string.format()
或类似的内容
请使用资源支持,这正是它的目的(并且非常有效)。您可以创建一个名为StaticBuffer的类,或者创建一个静态字符串数组作为数据成员的类
class StaticBuffer
{
static String array[];
}
然后您可以在onCreate()或任何其他函数中初始化它并使用它。因为它是静态的,所以它的值将反映您在任何地方所做的更改
例如:
附言:我是从我的一个朋友那里得到这个主意的 您可以创建一个名为StaticBuffer的类,或者使用静态字符串数组作为数据成员
class StaticBuffer
{
static String array[];
}
然后您可以在onCreate()或任何其他函数中初始化它并使用它。因为它是静态的,所以它的值将反映您在任何地方所做的更改
例如:
附言:我是从我的一个朋友那里得到这个主意的 你的评论是矛盾的;你说: 现在,我不需要把重点放在本地化文本上,因此,所有文本都进入strings.xml 如果不需要本地化,那么为什么要使用
strings.xml
当然,答案是因为无论本地化如何,strings.xml
都是实现这一点的最佳场所
我不知道你会做什么样的噩梦,但它和其他弦没有什么不同:
例如,对于strings.xml:
<string name="refresh">Refresh</string>
<string name="order_placed" formatted="false">Order Placed: %s</string>
将输出:
Something bad happened.
Please try again.
等等
此外,如果您在命名资源时遇到困难,我或多或少都在关注,尽管在底部描述了一些缺点,但它们对于Android Studio奇特的重构工具来说并不是什么大问题。您的评论是矛盾的;你说: 现在,我不需要把重点放在本地化文本上,因此,所有文本都进入strings.xml 如果不需要本地化,那么为什么要使用
strings.xml
当然,答案是因为无论本地化如何,strings.xml
都是实现这一点的最佳场所
我不知道你会做什么样的噩梦,但它和其他弦没有什么不同:
例如,对于strings.xml:
<string name="refresh">Refresh</string>
<string name="order_placed" formatted="false">Order Placed: %s</string>
将输出:
Something bad happened.
Please try again.
等等
此外,如果您在命名资源时遇到问题,我或多或少都会关注,尽管下面描述了一些缺点,他们对Android Studio花哨的重构工具没什么大不了的。如果我是你,我会把主题放在静态字符串数组中。你说已经有字符串留在
strings.xml
,所以我会把文本放在那里。否则,将有一堆文本分散在多个位置。这将使任何阅读该代码的人感到困惑。另外,当你关心本地化时,更新会更容易。没错,但我想确保整个应用的格式是一致的。是的,我不想在应用程序中将字符串分割成不同的文件。你能定义一下“它不是100%静态内容”是什么意思吗?我添加了用于替换此处提到的字符串或十进制字符的格式参数:如果我是你,我会将主题放在静态字符串数组中。你说已经有字符串保留在strings.xml
中,因此我会将文本保留在那里。否则,将有一堆文本分散在多个位置。这将使任何阅读该代码的人感到困惑。另外,当你关心本地化时,更新会更容易。没错,但我想确保整个应用的格式是一致的。是的,我不希望在整个应用程序中将字符串拆分为不同的文件。您能定义“它不是100%静态内容”的含义吗?我添加了用于替换字符串或十进制字符的格式参数,如这里所述:是的,但除了支持多行的基本格式之外,我在问是否有更好的方法,或者我的选择仅限于strings.xml
?您最好、最灵活和可维护的方法是使用strings.xml
。其他选项包括在代码中固定字符串,这不利于维护或国际化。是的,但除了支持多行的基本格式之外,我想问是否有更好的方法,或者我的选项是否仅限于strings.xml
?您最好的,m