android 国际化 中英文语言切换

最近工作中突然要求要项目进行国际化,之前没遇到过。但是也很简单呀,只需要把添加一个相应语言的的strings.xml的资源文件就好了

创建values
android 国际化 中英文语言切换_第1张图片这里准备创建资源

android 国际化 中英文语言切换_第2张图片
点击ok 一个英文的values包就创好了

接下里 我们需要在新建的values中创建string.xml 文件 并与默认values包中的string保持一致

android 国际化 中英文语言切换_第3张图片
xml布局




    

Activity中

 @Override
    protected void onResume() {
        super.onResume();
        tv.setText(R.string.login);
    }
    
 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.china:
                updateActivity("zh");
                break;
            case R.id.english:
                updateActivity("en");
                break;
        }
    }

    public void updateActivity(String sta){
        Locale myLocale = new Locale(sta);
        Resources res = getResources();// 获得res资源对象
        DisplayMetrics dm = res.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
        Configuration conf = res.getConfiguration();// 获得设置对象
        conf.locale = myLocale;// 简体中文
        res.updateConfiguration(conf, dm);
        Intent intent = new Intent(MainActivity.this,MainActivity.class);
        startActivity(intent);
    }

当资源的语言改变时,要重新调用tv.setText()方法界面才会生效

当前Activity中我用的模式是singTop 当跳转自身时会执行onPause–onNewInstanse–onResume 所以我就将tv.setText() 中写到了 onResume中

你可能感兴趣的:(android,界面设置)