strings.xml输入空格换行、中英文多语言切换
转义字符
android的字符串一般会存到strings.xml,直接输入空格,回车等无效,需要用转义字符,常用如
字符 | Value |
---|---|
换行 | \n |
缩进 | \t |
空格 |   ; |
” | " ; " ; |
’ | ' ; &apos ; |
& | & ; & ; |
< | < ; < ; |
> | > ; > ; |
其中的分号前面空格是没有的,例如
中英文切换
新建English的strings.xml
先创建values-en的包,在创建用来放英文的strings。
右击res,New一个Android Resource Directory
将Locale选中>>
选择自己需要的语言,我选的是en:English,不进行选择细分选项,根据个人需要,得到en
点击ok生成values-en的空包
右击New一个Values resource file
命名为strings.xml
得到如图,只需要按照键值对形式添加即可
新建English的strings.xml
同理右击res,New一个Android Resource Directory,将Locale选中>>选择自己需要的语言,我选的是zh:Chinese,不进行选择细分选项即区分简体繁体等,根据个人需要,得到zh。点击ok生成values-zh的空包
右击New一个Values resource file,命名为strings.xml,得到如图,只需要按照键值对形式添加即可
默认语言
设备的配置文件中会有默认设置语言,可以进行修改,当默认设置语言为英文而又没有values-en的包中的string,就会使用values下的strings。
查看本机默认语言为en,需要修改默认中文则到 system/build.prop进行修改en为zh即可
root@xxxx:/ # getprop ro.product.locale.language
en
root@xxxx:/ # getprop |grep language
[ro.product.locale.language]: [en]
root@xxxx:/ #
一键切换中英文
bt_1设置中文按键,bt_2设置英文按键,
bt_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i(TAG, "获取当前语言: " + getResources().getConfiguration().locale.getLanguage());
if (getResources().getConfiguration().locale.getLanguage().equals("en")) {
tag_Language=1;
Locale.setDefault(Locale.CHINESE);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = Locale.CHINESE;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
recreate();
Toast.makeText(SystemSetMain.this, "" + getResources().getConfiguration().locale.getLanguage(), Toast.LENGTH_SHORT).show();
}else{
tag_Language=0;
}
}
});
bt_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i(TAG, "获取当前语言: " + getResources().getConfiguration().locale.getLanguage());
if (getResources().getConfiguration().locale.getLanguage().equals("zh")) {
tag_Language=1;
Log.i(TAG, "onClick: english");
Locale.setDefault(Locale.ENGLISH);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = Locale.ENGLISH;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
recreate();
Toast.makeText(SystemSetMain.this, "" + getResources().getConfiguration().locale.getLanguage(), Toast.LENGTH_SHORT).show();
}else{
tag_Language=0;
}
}
});
recreate();是刷新界面,因为生效语言设置需要。
欢迎指错,一起学习
推荐文章:
Android 语言切换要点