AlertDialog - попытка завершить sh входное событие, но приемник входного события уже был удален - PullRequest
0 голосов
/ 29 февраля 2020

У меня серьезная проблема с настройкой Locale через AlertDialog, так как кажется, что когда я нажимаю кнопку, она «теряет» мою опцию. Переменные languages ​​- это String Array, который содержит языки приложения и инициализируется как:

languages = getResources().getStringArray(R.array.languages);
private void showChangeLanguageDialog(){
        AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
        mBuilder.setTitle(getResources().getString(R.string.choose));
        mBuilder.setSingleChoiceItems(languages, -1, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                if(languages[which].equals(getResources().getString(R.string.cancel))){
                    dialog.dismiss();
                }else{
                    switch (which){
                        case 1:
                            setAppLocale("en");
                            break;
                        case 2:
                            setAppLocale("gr");
                            break;
                    }
                    recreate();
                    dialog.dismiss();
                }

            }

        });

        AlertDialog mDialog = mBuilder.create();
        mDialog.show();

    }

Есть ли у кого-нибудь догадки о том, что происходит и как я должен преодолеть проблему? ? Заранее спасибо

...