java - 为什么对 TextView 使用 strings.xml 是个好习惯?

标签 java android android-studio

我有

aTextView.setText("Days\n" + getClassDays());

但是,我听说使用 strings.xml 是正确的做法。但如果是这样,这就是我如何找到最好的方法

strings.xml

<string name="course_days"><b>Days\n</b>%1$s</string>

我的 Activity

aTextView.setText(String.format(_context.getString(R.string.course_days), getClassDays()));

如您所见,它又长又丑。我是否缺少更简单的解决方案或其他什么?

最佳答案

当你使用 string.xml 时有很多原因......

  1. 避免重复: 为了拥有一个结构良好的应用程序,您不需要为不同的屏幕重复使用字符串,假设您有 5 个屏幕,每个屏幕都需要显示 toast “正在加载...”,后来您决定将其更改为“请稍候。 .."所以你需要迭代所有 5 个 toasts 进行更改,但是如果你 string.xml 那么一旦使用多个它就会改变 :D ! <string name="loading_toast">Please wait...</string>
  2. 本地化:您永远不知道您的应用程序可能支持哪种语言,因此您将使用 string.xml 来存储复杂的单词,例如俄语。假设您的 java 文件中有数十个字符串就像这个“Приветмир”,意思是“ Hello World !”那么你有时会感到困惑(正如我的经验:D)
  3. 分离:如果你正在做一个有数千行代码的大项目,你可能会写一些错误的文本,而你的客户会要求更正其中的一些,如果你使用的是字符串.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-->

快乐编码

关于java - 为什么对 TextView 使用 strings.xml 是个好习惯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49075042/

相关文章:

android - Activity 完成得太慢

android - 为什么 AudioRecord.getMinBufferSize 会返回 ERROR_BAD_VALUE (-2)?

Android Studio 无法解析符号 GoogleAnalytics v4

android-studio - AAPT构建错误Android资源失败:样式

java - 这个端口是什么 (JVM/Tomcat)

java - 如何在 Mapstruct 中将空字符串转换为 Long?

java - 如何将位图图像转换为可绘制图像,以便将其显示在另一个位图图像上

java - ManyToMany 的 MappingException

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

Android - setContentView(R.layout.main);