您的位置:首页 > 移动开发 > Android开发

TextView的setText注意事项

2015-12-10 10:56 387 查看
##Do not concatenate text displayed with setText
当使用下面的方法对TextView进行setText时

prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));

会有如下提示

Do not concatenate text displayed with setText. Use resource string with placeholders.

When calling TextView#setText:

Never call Number#toString() to format numbers; it will not handle fraction separators and locale-specific digits properly. Consider using String#format with proper format specifications (%d or %f) instead.

Do not pass a string literal (e.g. "Hello") to display text. Hardcoded text can not be properly translated to other languages. Consider using Android resource strings instead.

Do not build messages by concatenating text chunks. Such messages can not be properly translated.

简单来说使用TextView的setText方法时,有三点要注意的:

如果有数字,使用String#format方法来格式化

别硬编码,而是使用Android的String资源文件

别使用+进行字符串拼接

##例子
在String资源文件中声名

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

在TextView中通过setText设置

hello.setText(getString(R.string.welcome_messages,"John",10));

##参考
stackoverflow中的问题

Android官方文档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android TextView