私のアンドロイドアプリでは、言語フォームのフラグメントを変更したいと思います。私のアプリにはMainActivity.javaが含まれています。このアクティビティには、ナビゲーションドロワとフラグメントが含まれます。私はフラグメントから私のロケールを変更すると、言語を変更した後、私はこの1つを取得する場所ではなく、ナビゲーション中に、私は英語を選択すると、私は結果ナビゲーション変更アイテムの言語を変更する
を、次のコードを取得
private String setLocal() {
Locale locale;
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
prefs = getActivity().getSharedPreferences("Language", 0);
String restoredText = prefs.getString("language", "");
if (restoredText.equalsIgnoreCase("fr_FR"))
locale = new Locale("fr");
else
locale = new Locale("en");
Locale.setDefault(locale);
conf = new Configuration();
res.updateConfiguration(conf, dm);
return restoredText;
}
を使用していますdrawer.I、言語は、すべての変更されましたここ
は値-FRディレクトリから文字列ファイルです<string-array name="nav_drawer_titles">
<item>Accueil</item>
<item>Profil</item>
<item>courses</item>
<item>Tarification</item>
<item>Configuration</item>
<item>Envoyez à un ami</item>
<item>Facture</item>
<item>Position du Chaufeur</item>
<item>Aide</item>
<item>Déconnexion</item>
</string-array>
ここの値フォルダ
<!-- Nav Drawer Menu Items -->
<string-array name="nav_drawer_titles">
<item>Home</item>
<item>Profile</item>
<item>Ride Log</item>
<item>Invoice</item>
<item>Track Chauffeur</item>
<item>Language</item>
<item>Refer To Friend</item>
<item>Help</item>
<item>Sign Out</item>
</string-array>
から、私のnavigationdrawerfragnetは
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onPrepareOptionsMenu(menu);
invalidateOptionsMenu();
setLocal();
return super.onPrepareOptionsMenu(menu);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
setLocal();
invalidateOptionsMenu();
}
メニューの引き出しが含まれているアクティビティを変更する必要があります。 – Piyush
ok私はメインアクティビティでそれを変更しますが、希望の結果が得られません –
menudrawerアイテムの文字列もstrings.xmlにある必要があります。 – Bhushan