Cambiar el idioma del elemento navigationdrawer

En mi aplicación de Android quiero cambiar el fragmento de forma de idioma.Mi aplicación contiene MainActivity.java. Esta actividad contiene un cajón de navegación y un fragmento. Cuando cambio mi locale de fragmento, el lenguaje se cambia cada lugar pero no en el cajón de navegación. Estoy usando el código

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; } 

Cuando selecciono inglés obtengo el siguiente resultado en inglés

Después de cambiar el lenguaje, consigo éste

Introduzca aquí la descripción de la imagen Aquí es el archivo de cadena del directorio de valores-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> 

Y aquí desde la carpeta de valores

  <!-- 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> 

Y mi navigationdrawerfragnet es

 @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; } 

Im 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(); } 

Debe establecer el entorno local en la actividad del cajón antes de setContentView(int resId) .

También en el método onResume() puedes recitar tu actividad con API_LEVEL >= 11 llamar a super.recreate() y debajo de 11 puedes establecer onCreate(null) .

Comprueba esto

 title = getResources().getStringArray(R.array.nav_drawer_titles); images = getResources().getStringArray(R.array.nav_drawer_icons); 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); 

Usted necesita empujar allí la línea en su método del setLocal para invalidar la lista del cajón

  • Cómo crear un cajón de navegación sin biblioteca de soporte
  • Cómo resolver tipos inconvertibles no puede lanzar "Android.support.v4.app.fragment" a "nombre de paquete"
  • ¿Cómo configurar el margen derecho del cajón de navegación?
  • ActionBarDrawerToggle no está configurando el Indicador de cajón
  • LinearLayout $ LayoutParams no se puede convertir en android.support.v4.widget.DrawerLayout $ LayoutParams
  • Incluyendo fila en la parte inferior del cajón de navegación
  • Abra el cajón de navegación haciendo clic en el icono de la aplicación
  • ¿Cómo asociar el cajón de navegación al botón del arrastrador?
  • Icono de desplazamiento de la bandeja de navegación de Android a la derecha
  • Uso de syncState () en ActionBarDrawerToggle
  • Android Navigation Drawer (actividades de llamada) con AbstractMainActivity
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.