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
- Navegación Ver Texto Multilínea
- Android: NavigationDrawer / múltiples actividades / mismo menú
- Configurar el color de fondo del cajón de navegación
- Guardar estado de fragmentos con el cajón de navegación
- El gaviota de navegación de Android no pasa onTouchEvent a la actividad
Después de cambiar el lenguaje, consigo éste
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(); }
- Toque en cualquier lugar para deslizar el menú abierto para el cajón de navegación
- Lista plegable Elemento en la navegación Cajón
- Cómo cerrar el cajón de navegación cuando se pulsa un elemento desde el mismo?
- Cómo mostrar / ocultar el cajón de navegación mediante programación
- Cómo crear un cajón de navegación suave
- Cajón de navegación para cambiar las actividades en lugar de fragmentos
- Icono de Android ic_drawer.png en color blanco?
- Cómo agregar un grupo al cajón de navegación mediante programación
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
- Referencia débil para la llamada de red mala idea?
- Robolectric: 3.3.2 – Ningún fichero de manifiesto: build \ intermedios \ manifestos \ lleno \ debug \ src \ main \ AndroidManifest.xml