如何以及何时使用“提取字符串资源”?
How and when to use a 'Extract String Resource"?
我知道这对某些人来说可能是个愚蠢的问题,但 Android Studio 中的“提取字符串资源”究竟有什么作用?我知道它会更新 strings.xml 文件,但为什么要这样做我们提取它?它有什么意义?我不确定什么时候使用它?
感谢您的帮助和时间!
(我是 Android Studio 的新手)。
why do we extract it?
获取在某处硬编码的文字字符串,并将其替换为字符串资源和对该字符串资源的引用。所以,你变成这样的东西:
btnSomething.setText("Foo");
与:
btnSomething.setText(R.string.foo);
和一个名为 foo
的 <string>
资源,默认值为 Foo
。
原则上,您使用字符串资源进行翻译。因此,res/values/strings.xml
可能包含美国英语字符串,但 res/values-fr/strings.xml
将包含法语字符串,依此类推。
除了@CommonsWare 的回答之外,当您需要在不同的地方重复使用相同的字符串时,使用字符串资源也会有所帮助。因此,您不必在每种情况下都对字符串文字进行硬编码,而只需使用 <string>
资源即可。
这也使您的代码更易于维护,例如,对于需要更改字符串的情况,您只需转到 res/values/strings.xml
并修改该单个字符串,而不是跟踪您硬编码的位置文字字符串。
我知道这对某些人来说可能是个愚蠢的问题,但 Android Studio 中的“提取字符串资源”究竟有什么作用?我知道它会更新 strings.xml 文件,但为什么要这样做我们提取它?它有什么意义?我不确定什么时候使用它? 感谢您的帮助和时间! (我是 Android Studio 的新手)。
why do we extract it?
获取在某处硬编码的文字字符串,并将其替换为字符串资源和对该字符串资源的引用。所以,你变成这样的东西:
btnSomething.setText("Foo");
与:
btnSomething.setText(R.string.foo);
和一个名为 foo
的 <string>
资源,默认值为 Foo
。
原则上,您使用字符串资源进行翻译。因此,res/values/strings.xml
可能包含美国英语字符串,但 res/values-fr/strings.xml
将包含法语字符串,依此类推。
除了@CommonsWare 的回答之外,当您需要在不同的地方重复使用相同的字符串时,使用字符串资源也会有所帮助。因此,您不必在每种情况下都对字符串文字进行硬编码,而只需使用 <string>
资源即可。
这也使您的代码更易于维护,例如,对于需要更改字符串的情况,您只需转到 res/values/strings.xml
并修改该单个字符串,而不是跟踪您硬编码的位置文字字符串。