setText的优化

Android的许多UI控件都有显示文字的功能,如TextView、EditText等UI控件。这些控件都通过setText方法设置显示字体,如在一个textView显示距离过年还有x天x时x秒,可以这么写:

textView.setText("距离过年还有" + mDay + "天" + mHour + "时" + mSecond + "秒");

但明显这么写很不规范,且性能不好,如果使用Android Studio,它还会提示如下警告:
Do not concatenate text displayed with setText,use resource string with placeholders
要消除该警告以及规范化代码,可以做以下实现:
在string.xml中添加string资源声明:

<string name="delay_time">距离过年还有%1$d天%2$d时%3$d秒</string>

在代码中使用:

textView.setText(String.format(getResource().getString(R.id.delay_time), mDay, mHour, mSecond));

这样代码就规范许多,同时消除了上述的警告。
常用格式:
%ns—>n表示目前是第几个参数 (比如%1s中的1代表第一个参数),s代表字符串
%nd—>n表示目前是第几个参数 (比如%1d中的1代表第一个参数),d代表整数
%nf—>n表示目前是第几个参数 (比如%1f中的1代表第一个参数),f代表浮点数
最后,列出参考学习的博客:
Android中的一些使用技巧

    原文作者:我啊翔1314
    原文地址: https://www.jianshu.com/p/c0e8d7cd45c0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞