私は、スピナーを使用してアプリケーションの言語を変更できるようにしたいと思います。 私はいろいろ考えましたが、彼らはこのアクティビティの言語をすべてのアクティビティではなく変更していますので、保存したいので、ユーザがアプリケーションを再起動すると、最後に選んだ言語が見つかります。Androidランタイムでアプリケーション言語を変更する方法
答えて
onCreate()
のすべてのアクティビティで同じコードがSharedPreferencesからlanguageToLoad
をロードする
SharedPreferencesを使用して、ユーザーが選択した言語を追跡し、onCreate()およびonResume()メソッドでその言語を使用するようにアクティビティを設定します。それはアプリの再起動などを渡って持続します。この方法で
あなたは、あなたがこのSharedPreferences languagepref = getSharedPreferences("language",MODE_PRIVATE);
SharedPreferences.Editor editor = languagepref.edit();
editor.putString("languageToLoad",languageToLoad);
editor.commit();
と使用のような言語を保存する必要がありますが
String languageToLoad = "en"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
をしたいスピナーでこのコードまたは任意の方法を使用することができます
すべてのデベロッパーはアプリでこの方法を使用していますか? –
私は自分のコーデックにアクセスできないので、他の開発者に話すことはできません。 –
これは、1つのアクティビティにある情報を他のアクティビティに渡すために推奨され、よりきれいな方法です。それを行うためのもう一つの、よりハッキリな/不正な方法は、データをアクティビティの静的なフィールドとして保持し、他のアクティビティからアクセスすることですが、誰かが尋ねるならば、 :) –
これは古い質問ですが、とにかくそれに答えるでしょう: ) アプリケーションクラスを拡張して、すべてのアクティビティでAbol3zのソリューションを適用できます。クラスを作成します。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String lang = preferences.getString("lang", "en");
Locale locale = new Locale(lang);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}
}
とマニフェストにアプリケーションクラスとしてMyApplicationを設定:
<application
android:name=".MyApplication"
...
/>
あなたは(あなたのスピナーで)LANG値を設定することができます。
我々が使用SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
preferences.edit().putString("lang", "en").commit();
[documentation](https://developer.android.com/reference/android/app/Application.html#onCreate())によると、アプリケーションonCreate()はアプリの起動時にのみ呼び出されます。だから、あなたは本当にランタイムで言語を変更していないが、次のアプリの開始時に、右ですか?編集:元の質問を再読んで、あなたの方法はすべての後に問題を解決しました。 – Micha
btnChange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mContext);
//preferences.edit().putString("lang", "bn").commit();
String lang = preferences.getString("lang", "en");
//Log.e("lang", "lang in Main Activity:"+lang);
if (lang.equalsIgnoreCase("en")){
setLocale("bn");
preferences.edit().putString("lang", "bn").commit();
btnChange.setText("Eng");
}else if(lang.equalsIgnoreCase("bn")){
setLocale("en");
preferences.edit().putString("lang", "en").commit();
btnChange.setText("বাংলা");
}
}
});
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, MainActivity.class);
startActivity(refresh);
finish();
}
テスト目的のための2つの言語。すべての文字列を異なる名前の値と値-bnという異なるフォルダに保存します。
- 1. Androidアプリケーションの言語を変更する
- 2. 設定変更や言語変更(ロケール)でAndroidアプリを更新する方法
- 3. ランタイムでJavaスイングの言語を変更する
- 4. GoogleマップV2でペルシア語に言語を変更する方法android
- 5. Android:言語の変更
- 6. Androidでテキスト言語を変更
- 7. Androidで言語を別の言語に翻訳する方法
- 8. アプリケーションでの言語設定の変更
- 9. inno-setupで言語選択ダイアログの言語を変更する方法は?
- 10. IntelliJ IDEA:言語を英語に変更する方法は?
- 11. 私のwpfアプリケーションの言語を変更
- 12. Androidアプリケーションの多言語サポートを提供する方法
- 13. ランタイム時にWinFormsアプリケーションのカルチャを変更する方法
- 14. 全国語の言語を変更するネイティブのアプリケーション
- 15. デバイス言語の変更でAndroidアプリが変更される
- 16. アプリケーションの言語を変更するスピナー(断片内)の作成方法
- 17. WPFで言語を変更する方法は?
- 18. FirebaseコンソールWebで言語のデフォルトを変更する方法は?
- 19. Oracleフォームで言語を動的に変更する方法
- 20. Cakephp 3でフロントエンド言語のみを変更する方法
- 21. Facebookのログインページで言語を変更する方法は?
- 22. 機能のdjango-modeltranslationで言語を変更する方法
- 23. キーボード言語をプログラムで変更する方法
- 24. ASP.NetでCKEditorの入力言語を変更する方法C#
- 25. ZKで言語プロパティファイルをプログラム的に変更する方法は?
- 26. Spring STS Dashboardで言語を変更する方法
- 27. Swift:アプリ内で言語を変更する方法は?
- 28. WPF/XAMLで言語を変更する方法
- 29. 言語を変更する
- 30. Android SDK多言語アプリ - コンパイル時に言語を変更できますか?
これはアンドロイドシステム全体で変わるのだろうか、それともアプリケーションのためだけに変わるだろうか?ユーザーがアプリケーションを終了すると、アンドロイドのデフォルトlang –
@ KarueBensonKarueを実行することができるように、アプリケーションでのみ変更されます。 –
ご回答ありがとうございます –