如何解决选择时警报对话框未更改
我正在尝试在应用程序中选择语言。选择语言后,语言会改变,但选择不会改变。我使用两种语言,如果我选择了第一语言(印度尼西亚),但是如果我选择了第二语言(英语),则选择仍然是第一选择(印度尼西亚),并且语言变成了英语。这是我的代码。
Button changeLang = findViewById(R.id.bahasa);
changeLang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showChangeLanguageDialog();
}
});
此代码显示对话框警报。
private void showChangeLanguageDialog() {
final String[] listItems = {"Indonesia","English"};
AlertDialog.Builder mBuilder = new AlertDialog.Builder(AboutActivity.this);
mBuilder.setTitle("Pilih Bahasa");
Integer selectedPos = 0;
if(listItems.equals("Indonesia")){
selectedPos = 1; }
else {
selectedPos = 0;
}
mBuilder.setSingleChoiceItems(listItems,selectedPos,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
String selectedItem = listItems[which];
if (selectedItem.equals("Indonesia")) {
setLocale("in");
recreate();
} else {
setLocale("en");
recreate();
}
dialog.dismiss();
}
});
AlertDialog mDialog = mBuilder.create();
mDialog.show();
}
private void setLocale(String lang) {
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
SharedPreferences.Editor editor = getSharedPreferences("Settings",MODE_PRIVATE).edit();
editor.putString("My_Lang",lang);
editor.apply();
}
public void loadLocale(){
SharedPreferences preferences = getSharedPreferences("Settings",Activity.MODE_PRIVATE);
String language = preferences.getString("My_Lang","");
setLocale(language);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。