3

この設定セクションでは、ユーザーがアプリ内で表示される言語を変更できるようにしています。ユーザーが別の言語を選択すると、言語の変更を適用できるようにアクティビティが再読み込みされます。しかし、問題は、ユーザーが言語を変更した直後にクリックしても、バックグラウンド アクティビティに表示される言語が同じままであることです。だから私の質問は、バックグラウンドでの活動に戻ったときに言語の変更を適用するにはどうすればよいですか? メソッドの変更を検出するために何かをする必要があると思いますがonResume、それが何であるかはわかりません。ご提案がありましたら、お知らせください。ありがとうございました。

4

4 に答える 4

0

SharedPreferences を使用することをお勧めします。そこに関連付けられた値を持つlangキーを保存し、必要に応じて更新できます。onResume() メソッドで lang 値を取得し、格納された値に従ってビューを設定できます。

SharedPreferences sharedPreferences; 
sharedPreferences = this.getSharedPreferences("MyActivity", Activity.MODE_PRIVATE); 
String lang = sharedPreferences.getString("lang", "en-GB");

SharedPreferences.Editor editor; 
editor = sharedPreferences.edit(); 
editor.putString("lang", "en-US").commit(); 

それがあなたが行くために必要な基本です。

于 2013-07-22T09:27:56.303 に答える
0

変更が完了した後、アクティビティを再起動しようとしましたか?

簡単に使用できます

finish();
startActivity(getIntent());

設定の変更を検出するたびにアクティビティを更新します。

于 2013-07-22T09:32:17.557 に答える