0

私のアプリケーションは、英語とスペイン語の 2 つの言語で実行されています。このために、values と values-sp の 2 つのフォルダーを保持しています。

添付のコードを記述したためにアプリケーション全体が選択した言語に変更されたことをクリックするたびに、SettingsActivity にボタンが 1 つあります。

私の問題は、ボタンをクリックして戻るボタンを押すと、アプリがしばらくの間黒い画面を表示してから表示されることです。

再開時のすべてのアクティビティで、ビューを更新するために onCreate を再度呼び出しています。これを行ったにもかかわらず、黒い画面が表示されます。

誰でも私がこれから抜け出すのを手伝ってくれませんか。

前もって感謝します。

私のコードは

english.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) 
                {
                       languagePopup.dismiss();
                       Locale locale2 = new Locale("en"); 
                       Locale.setDefault(locale2);
                       Configuration config2 = new Configuration();
                       config2.locale = locale2;
                       getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
                       changLanguae();
                       if(language.equalsIgnoreCase("English"))
                           Constants.isLanguageChanged=false;
                       else
                           Constants.isLanguageChanged = true;

                }
            });
            spanish.setOnClickListener(new OnClickListener() 
            {

                @Override
                public void onClick(View v)
                {
                       languagePopup.dismiss();
                       Locale locale2 = new Locale("es"); 
                       Locale.setDefault(locale2);
                       Configuration config2 = new Configuration();
                       config2.locale = locale2;
                       getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
                       changLanguae();
                       if(language.equalsIgnoreCase("Spanish"))
                           Constants.isLanguageChanged=false;
                       else
                           Constants.isLanguageChanged = true;

                }
            });
4

2 に答える 2

1

ビューの値設定部分をコピーしたメソッドを作成し、このメソッドを onResume() で使用します。onResume() で onCreate 全体を記述する必要はありません。

于 2013-03-20T14:00:13.377 に答える
1

アプリの言語を変更するより適切な方法は、ユーザーがデバイス設定から言語と入力設定を変更できるようにし、その言語用に作成したフォルダーから UI をレンダリングすることで、デバイスとアプリがこの変更を適切に処理できるようにすることです。例はAndroid Localizationにあります。

于 2013-10-13T06:23:45.230 に答える