点击按钮实现页面切换中英文

我们在开发项目中,有时候需要切换不同的语言,有的人用英文,有的人使用繁体字,有的人使用简体字,下面我们来使用按钮达到一个切换语言的效果。。。在android系统的设置中有这个选项,我们选择之后系统里面的自带的文字都会转换成你自己设置的文字。
不多说。第一步我们新建一个项目。点击红笔处。项目目录选到Project下。。

下一步选中res目录点击右键,选中new —> Android Resource Directory然后我们来到这个页面

选中Locale 然后点 “>>”这个标志。。。

然后在Language中选中English --> US 这个就会生成一个特有的Values-en-rUS文件夹,然后我们把我们正常生成的values下的strings.xml复制到这个生成的特有的文件夹下面。然后把这个里面的中文全部改成英文。。。。(其实我们也可以不这么复杂。我们可以直接在res下创建一个Values-en-rUS文件夹,如果你知道英文的这个特定的文件夹名字是什么的话,为了预防你不知道,各个国家的语言的文件夹命名规则请访问下面网址https://blog.csdn.net/wlr_tang/article/details/23844495)。根据这个我们在创建一个繁体的文件夹,再把里面的简体字改成繁体字。。。。效果如下

接下来我们在布局文件创建三个按钮,根据点击不同的按钮转换成不同的语言,(三个按钮分别上面是 1.切换中文 2.切换英文 3.切换繁体字。以及英文版本和繁体字版本)

 senglish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeAppLanguage(Locale.US);
            }
        });
        schinese.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeAppLanguage(Locale.SIMPLIFIED_CHINESE);
            }
        });
        stchinese.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                changeAppLanguage(Locale.TRADITIONAL_CHINESE);
            }
        });
public void changeAppLanguage(Locale locale) {
        //得到显示指示
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        //获取设置对象
        Configuration configuration = getResources().getConfiguration();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            configuration.setLocale(locale);
        } else {
            configuration.locale = locale;
        }
        //更新显示的语言
        getResources().updateConfiguration(configuration, metrics);
        //重新启动Activity
        Intent intent = new Intent(this, MainActivity.class);
        //用于开始到达新的Activity之前移除之前的Activity。这样我们点击back键就会直接回桌面了
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);
    }

这里就是MainActivity.java里面的东西,根据我们点击切换语言的按钮,页面上所有的语言都会切换成我们想要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值