实际开发的过程当中咱们有时候会遇到,一个TextView里面会遇到会有一个一大串固定的文字,而里面的数字或者个别字须要根据后台的接口而展现的。这个时候咱们最简单的方法就是在string.xml文件里 使用 %s、%1$s、%d、%1$d,而在页面展现的时候咱们只须要用实际展现的文字或者数据替换掉这些占位符就能够了。android
%1$s表示把第一个位置的占位符替换成string类型ui
%1$d表示把第一个位置的占位符替换成int类型spa
数字表示替换字符串中第几个被替换的位置,若一个字符串要替换两个int类型,在替换位置分别写%1$d和%2$d..net
%s 、%d为缩写方式,只替换一个位置,能够这么写。code
例1: %sxml
strings.xmlblog
<string name="strings1">My name is %s</string>
代码中:接口
TextView tv_text = findViewById(R.id.tv_text); String text = getString(R.string.strings1, "Tom"); tv_text.setText(text); Log.i(TAG, "text: "+text);
Log:开发
I/StringsApiUseDemoActivity: text: My name is Tom字符串
例2:%d
<string name="strings1">My age is %d</string>
代码中:
TextView tv_text = findViewById(R.id.tv_text); String text = getString(R.string.strings2, 20); tv_text.setText(text); Log.i(TAG, "text: "+text);
Log:
I/StringsApiUseDemoActivity: text: My age is 20
例3:%1$s
<string name="strings3">My name is %1$s, you name is %2$s, others name is %3$s</string>
代码中:
TextView tv_text = findViewById(R.id.tv_text); String text = getString(R.string.strings3, "Tom", "Mike", "John"); tv_text.setText(text); Log.i(TAG, "text: "+text);
Log:
I/StringsApiUseDemoActivity: text: My name is Tom, you name is Mike, others name is John
例4:%1$d
<string name="strings4">My age is %1$d, you age is %2$d, others age is %3$d</string>
代码中:
TextView tv_text = findViewById(R.id.tv_text); String text = getString(R.string.strings4, 20, 25, 30); tv_text.setText(text); Log.i(TAG, "text: "+text);
Log:
I/StringsApiUseDemoActivity: text: My age is 20, you age is 25, others age is 30
参考连接: