一般我们的字符串资源文件都是放在values/strings.xml文件中,我们常用的方式如下:
res/values/strings:
<resources>
<string name="app_name">Demo</string>
<string name="tv_content">文本内容</string>
</resources>
xml文件中使用方式:
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/tv_content"
android:textSize="26sp"/>
代码中使用方式:
tv.setText(R.string.tv_content);
但是有时候需要用到拼接,例如:我叫 XXX,是一名程序猿。这时候我们可能会想到拼接。其实也可以使用格式化方式处理。
<string name="name">我叫%1$s,是一名程序猿</string>
格式说明:
%1$s 表示一个参数,s表示字符串.如果有第二个参数的话数字往上加,如%2$s.
%2$d 表示第二个参数,d表示整数.
代码中使用方式:
private TextView tv;
String nameContetn = "Jack Ma";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
String string = getResources().getString(R.string.name);
String name = String.format(string, nameContetn);
tv.setText(name);
}
多个参数时:
<string name="name">我叫%1$s,今年%2$d岁,是一名程序猿</string>
private TextView tv;
String nameContetn = "Jack Ma";
int ageContetn = 25;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
String string = getResources().getString(R.string.name);
String name = String.format(string, nameContetn, ageContetn);
tv.setText(name);
}