我有
aTextView.setText("Days\n" + getClassDays());
但是,我听说使用strings.xml是正确的方法。但如果是这样,这就是我找到最佳方式的方法
strings.xml
<string name="course_days"><b>Days\n</b>%1$s</string>
MyActivity
aTextView.setText(String.format(_context.getString(R.string.course_days), getClassDays()));
正如你所看到的那样,这是漫长而丑陋的。我错过了一个更简单的解决方案吗?
答案 0 :(得分:3)
使用string.xml时有很多原因......
<string name="loading_toast">Please wait...</string>
分离:如果您正在处理包含数千行代码的大型项目,那么您可能会编写一些错误的文本,并且如果您使用字符串,您的客户端会要求更正其中的一些.xml然后你可以指定每个屏幕的前缀,它将使修改和重构过程变得容易这里是一个例子:
<!--Log in screen start -->
<string name="login_screen_welcome_message">Welcome</string>
<string name="login_screen_log_in_button">Log In</string>
<!--Log in screen end -->
<!--Home screen start-->
<string name="home_screen_greeting_message">Hi there !</string>
<--Home screen end-->
快乐编码
答案 1 :(得分:2)
当您需要本地化您的应用时,它会让您的生活更轻松。您只需要更改strings.xml文件,所有应用程序都将使用其他语言。此外,它是一种更有条理的方式来保持你的字符串,如果你需要更改其中一个,你只能去一个地方。例如,如果您在多个活动中拥有相同的字符串并且想要更改它,则会在strings.xml广告中更改一次,这将在整个活动中反映出来。更多信息here。
答案 2 :(得分:0)
在字符串资源中添加粗体标签是什么意思?
在string.xml中只需<string name="course_days">Days\n %d</string>
(%d
for int),aTextView.setText(_context.getString(R.string.course_days), getClassDays()));
就可以了。
请注意,如果您在活动或片段中设置textView的值,那么它将只是aTextView.setText(getString(R.string.course_days), getClassDays()));