核心代码
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
DisplayMetrics displayMetrics = resources.getDisplayMetrics();
configuration.locale = getLocale(language);
resources.updateConfiguration(configuration, displayMetrics);
然后写一个ListPreference
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Intent intent = new Intent(activity, MainActivity.class);
intent.putExtra("setLanguage", true);
activity.startActivity(intent);
activity.finish();
}
不知道为什么再进入Fragment里面调用getActivity会返回null
所以就在OnAttach里面
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.activity = activity;
}
然后在MainActivity的OnNewIntent里面重启Activity
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.getExtras()!=null){
if (intent.getExtras().getBoolean("setLanguage",false)){
MainActivity.this.finish();
startActivity(new Intent(this, MainActivity.class));
}
}
}
然后在onCreate里面调用核心代码