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

转义字符

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

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值