13

バイリンガル (2 つの言語を持つ) Android アプリケーションを作成しました。リソース文字列を 2 つのファイルに挿入しました。

For Persian language (default)
values/strings_locale.xml‬

For English language 
values-en/strings_locale.xml‬

アクティビティを初めて起動するときに、次のコードを挿入しました。

Configuration c = new Configuration(this.getResources().getConfiguration());
c.locale = new Locale("fa_IR");

this.getResources().updateConfiguration(c, this.getResources().getDisplayMetrics());

したがって、このコードの後、私のデフォルト言語はペルシア語になり、すべてのアクティビティのすべての文字列がペルシア語で正しく表示されます。

しかし問題は、デバイスの画面が回転すると、すべての文字列が英語で表示され、他のすべてのアクティビティでも発生することです! そして、アプリケーションを閉じて再度開く必要があります。

なぜこれが起こるのか、どうすればこの問題を解決できますか?

4

3 に答える 3

0

あなたが何をしようとしているのか正確にはわかりません。ただし、一般に、アプリの言語を管理する必要はありません。Android は、利用可能な場合は電話の言語を自動的に選択し、それ以外の場合は言語を選択するダイアログを表示します。

コードでそれとは独立した言語を設定したい場合 (これはお勧めしません)、ライフサイクルに問題があり、方向の変更後にコードが再度実行されない可能性があります。もっと多くのコードを投稿していただければ、そのお手伝いができます。

于 2013-11-04T10:36:49.677 に答える