选择时警报对话框未更改

问题描述

我正在尝试在应用程序中选择语言。选择语言后,语言会改变,但选择不会改变。我使用两种语言,如果我选择了第一语言(印度尼西亚),但是如果我选择了第二语言(英语),则选择仍然是第一选择(印度尼西亚),并且语言变成了英语。这是我的代码

 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 (将#修改为@)