setText的优化
程序员文章站
2024-03-24 11:03:16
...
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中的一些使用技巧