Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换

strings.xml输入空格换行、中英文多语言切换

  • 转义字符
  • 中英文切换
    • 新建English的strings.xml
    • 新建English的strings.xml
    • 默认语言
    • 一键切换中英文

转义字符

android的字符串一般会存到strings.xml,直接输入空格,回车等无效,需要用转义字符,常用如

字符 Value
换行 \n
缩进 \t
空格   ;
" " ; " ;
' ; &apos ;
& & ; & ;
< < ; < ;
> > ; > ;

其中的分号前面空格是没有的,例如
在这里插入图片描述

中英文切换

新建English的strings.xml

先创建values-en的包,在创建用来放英文的strings。

右击res,New一个Android Resource Directory
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第1张图片

将Locale选中>>

Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第2张图片
选择自己需要的语言,我选的是en:English,不进行选择细分选项,根据个人需要,得到en
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第3张图片点击ok生成values-en的空包
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第4张图片
右击New一个Values resource file
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第5张图片命名为strings.xml

Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第6张图片
得到如图,只需要按照键值对形式添加即可
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第7张图片

新建English的strings.xml

同理右击res,New一个Android Resource Directory,将Locale选中>>选择自己需要的语言,我选的是zh:Chinese,不进行选择细分选项即区分简体繁体等,根据个人需要,得到zh。点击ok生成values-zh的空包
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第8张图片右击New一个Values resource file,命名为strings.xml,得到如图,只需要按照键值对形式添加即可
Android Studio的代码笔记--strings.xml输入空格换行、中英文多语言切换_第9张图片

默认语言

设备的配置文件中会有默认设置语言,可以进行修改,当默认设置语言为英文而又没有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 语言切换要点

你可能感兴趣的:(Android,xml,android,webview,android,studio,java)