我有
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()));
如你所见,这是漫长而丑陋的。我错过了一个更简单的解决方案吗?
使用string.xml时有很多原因...
<string name="loading_toast">Please wait...</string>
<!--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-->
快乐的编码
当您需要本地化您的应用时,它会让您的生活更轻松。您只需要更改strings.xml文件,所有应用程序都将使用其他语言。此外,它是一种更有条理的方式来保持你的字符串,如果你需要更改其中一个,你只能去一个地方。例如,如果您在多个活动中拥有相同的字符串并且想要更改它,则会在strings.xml广告中更改一次,这将在整个活动中反映出来。更多信息here。
什么是在字符串资源中添加粗体标签的重点?
只需在你的string.xml和<string name="course_days">Days\n %d</string>
中使用%d
(aTextView.setText(_context.getString(R.string.course_days), getClassDays()));
for int)就行了。
请注意,如果您在活动或片段中设置textView的值,那么它将只是aTextView.setText(getString(R.string.course_days), getClassDays()));
使用黄油刀库
@BindString(R.string.course_days)
String courseDays;
在onCreate
Butterknife.bind(this);