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

  • Post author:
  • Post category:其他




转义字符

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

字符 Value
换行 \n
缩进 \t
空格 &#160 ;
&#34 ; &quot ;
&#39 ; &apos ;
& &#38 ; &amp ;
< &#60 ; &lt ;
> &#62 ; &gt ;

其中的分号前面空格是没有的,例如

在这里插入图片描述



中英文切换



新建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 语言切换要点



版权声明:本文为weixin_45208598原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。