前言:
以前写过关于TextView的相关内容,但是觉得没有把他们给整理出来,有点凌乱,所以在这里再次花时间把TextView常用的几种方式再次整理出来让大家参考!
功能:
本文主要是完成类似京东套装价或好评度这样同一个TextView中部分字符串为动态数据的情况:
实现原理:
android项目里的strings.xml的节点是支持占位符的:
<string name="data">整数型:%1$d,浮点型:%2$.2f,字符串:%3$s</string>
其中:
%是表示占位符的开始,从1开始
$是表示数据的数据类型:
d:整型数据
f:浮点型数据,“.2”表示有两位小数
s:字符串
然后在Java代码中先获取字符串资源的字符串,然后为占位符赋值:
String data = getResources().getString(R.string.data); data = String.format(data,18,59.9,"说好为我泡花茶"); tv_data.setText(data);
实现方法:
- 添加TextView控件:
<TextView android:layout_width="match_parent" android:text="@string/price" android:id="@+id/tv_price" android:layout_height="wrap_content" />
- 添加字符串资源,并为TextView设置字符串资源
<string name="price">套装价:%1$s</string>
- 在activity中获取字符串资源的字符串对象
String price = getResources().getString(R.string.price);
- 格式化字符串对象,并为其设置占位符的动态值
price = String.format(price,"998.9");
- 为TextView的实例化对象设置字符串
tv_price.setText(price);
项目展示:
项目地址:
https://github.com/Winfred1989/DemoTextView