Android 微调器不';t在更改应用程序语言后刷新片段
我正在国际化我的应用程序,我的设置片段(负责语言选项)没有按我所希望的那样工作 它有一个带有3种语言的微调器,选择其中一种语言后,它会更改应用程序的语言。它是有效的。。。如果我选择西班牙语并返回菜单,我会看到所有的西班牙语,其他语言也是如此,但是。。。选择语言后,设置片段不会刷新,我认为这很重要。(选择语言后,设置屏幕的语言不会更改,它需要更改片段) 有人能帮我吗?谢谢 代码:Android 微调器不';t在更改应用程序语言后刷新片段,android,android-fragments,android-spinner,Android,Android Fragments,Android Spinner,我正在国际化我的应用程序,我的设置片段(负责语言选项)没有按我所希望的那样工作 它有一个带有3种语言的微调器,选择其中一种语言后,它会更改应用程序的语言。它是有效的。。。如果我选择西班牙语并返回菜单,我会看到所有的西班牙语,其他语言也是如此,但是。。。选择语言后,设置片段不会刷新,我认为这很重要。(选择语言后,设置屏幕的语言不会更改,它需要更改片段) 有人能帮我吗?谢谢 代码: this.languagesSpinner.setOnItemSelectedListener(新建) Adapter
this.languagesSpinner.setOnItemSelectedListener(新建)
AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共适配器(@NonNull final AdapterView parent,
@非空最终视图,
int位置,
长id){
最终字符串newLanguage;
开关(languagesSpinner.getSelectedItem().toString()){
案例“英语”:
newLanguage=“en”;
打破
“西班牙语”一案:
newLanguage=“es”;
打破
违约:
newLanguage=“ca”;
打破
}
最终语言环境newLocal=新语言环境(newLanguage);
setDefault(newLocal);
最终配置newConfig=新配置();
newConfig.locale=newLocal;
getContext().getResources().updateConfiguration(newConfig,null);
}
@凌驾
未选择公共无效(@NonNull final AdapterView parent){
Log.i(“SettingsFragment”,“微调器为空”);
}
});
您必须刷新/重新创建ParentActivity以反映更改。您可以调用此方法:
public static void refreshParentActivity(Context context) {
Activity parentActivity = (Activity) context;
Intent intent = parentActivity.getIntent();
parentActivity.finish();
context.startActivity(intent);
}
通知微调器适配器更改数据集,如adapter.notifyDataSetChanged();
public static void refreshParentActivity(Context context) {
Activity parentActivity = (Activity) context;
Intent intent = parentActivity.getIntent();
parentActivity.finish();
context.startActivity(intent);
}