Android轻松实现多语言

作者: 你在笑吗 | 来源:发表于2017-11-07 15:28 被阅读0次
    1.创建多语言包
    11.gif
    2.首先在onCreate方法中调用此方法查看上一次保存的是什么语言
     public void setLanguage() {
            //根据读取到存放在sp里面的数据 进行设置
            Configuration configuration = getResources().getConfiguration();
    
            SharedPreferences sharedPreferences = getSharedPreferences("key", MODE_PRIVATE);
            int language = sharedPreferences.getInt("language", 0);
    
            switch (language) {
                case 0:
                    configuration.setLocale(Locale.CHINESE);
                    break;
                case 1:
                    configuration.setLocale(Locale.ENGLISH);
                    break;
            }
            getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
        }
    
    
    3.点击某个按钮弹出选择框选择语言包
       btn_qiehuan.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String[] strings = {"简体中文", "English"};
                    //首次进入判断是否是中文语言
                    int selected = getSharedPreferences("language", Context.MODE_PRIVATE).getInt("language", -1);
                    if (selected == -1) {
                        String defaultLanguage = Locale.getDefault().toString();
                        if (defaultLanguage.equals(Locale.CHINESE.toString()) || defaultLanguage.equals(Locale.SIMPLIFIED_CHINESE.toString())
                                || defaultLanguage.equals(Locale.TRADITIONAL_CHINESE.toString())) {
                            selected = 0;
                        } else {
                            selected = 1;
                        }
                    }
                    new AlertDialog.Builder(MainActivity.this)
                            .setSingleChoiceItems(strings, selected,
                                    new DialogInterface.OnClickListener() {
                                        //点击单选框某一项以后
                                        public void onClick(DialogInterface dialogInterface, int i) {
                                            SharedPreferences preferences = getSharedPreferences("language", Context.MODE_PRIVATE);
                                            SharedPreferences.Editor editor = preferences.edit();
                                            editor.putInt("language", i);
                                            editor.commit();
                                            dialogInterface.dismiss();
                                            //重启activity
                                            finish();
                                            Intent intent = new Intent(MainActivity.this, MainActivity.class);
                                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                            startActivity(intent);
                                        }
                                    })
                            .create()
                            .show();
                }
            });
    

    效果演示~~~

    8CAE7CF01EBF6D296AC192C82287105F.gif

    相关文章

      网友评论

        本文标题:Android轻松实现多语言

        本文链接:https://www.haomeiwen.com/subject/xkljmxtx.html