android 如何动态更新当前显示的Activity 的local

来源:互联网 发布:dreamweaver cs3 mac 编辑:程序博客网 时间:2024/05/05 02:09

首先,在用户改变语言区域后,调用如下代码


Locale locale = getLocaleFormPreference(this);
Configuration cfg = getResources().getConfiguration();l

 

if(ocale!=null && !locale.equals(cfg.locale)) {
    Bundle bundle = new Bundle();
    onSaveInstanceState(bundle);

    Intent intent = getIntent();
    intent.putExtra("InstanceState", bundle);
    intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
    startActivity(intent);
    finish();
}


之后,在被启动的Activity 的onCreate(Bundle savedInstanceState)的最后位置运行下面
的代码:
if(savedInstanceState == null) {
    savedInstanceState = getIntent().getBundleExtra("InstanceState");
    if(savedInstanceState != null) {
        onRestoreInstanceState(savedInstanceState);
    }
}

原创粉丝点击