在我的Android應用程序中,我想更改語言表單fragment.My應用程序包含MainActivity.java。此活動包含導航抽屜和片段。當我從片段改變我的語言環境,語言會改變每一個地方,但不是在導航drawer.I正在使用的代碼更改navigationdrawer項目語言
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;
}
我得到這樣的一個
<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 View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
title = getResources().getStringArray(R.array.nav_drawer_titles);
images = getResources().getStringArray(R.array.nav_drawer_icons);
mDrawerListView = (ListView) inflater.inflate(
R.layout.fragment_navigation_drawer, container, false);
mDrawerListView
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
selectItem(position);
}
});
selectedposition = new int[] { mCurrentSelectedPosition };
drawerAdapter = new CustomDrawerAdapter(getActivity(), title, images,
selectedposition);
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
mDrawerListView.setAdapter(drawerAdapter);
return mDrawerListView;
}
林MainActivity.java
@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
好吧我改變它的主要活動,但沒有得到desirede結果 –
我認爲你的menudrawer項目的字符串也應該在strings.xml中,它們在它嗎? – Bhushan