¿Cómo puedo seleccionar diferentes archivos de activos como el cambio de idioma con Locale y Configuración?
Quiero cambiar el archivo JSON de la carpeta de activos según el cambio de idioma en mi aplicación y quiero sentir los datos en RecyclerView
.
Pero mi adaptador no aplica que cambia.
- Android usando recursos de matriz xml
- Android.view.InflateException: Línea de archivo XML binario # 12: Error al inflar la clase <unknown>
- Android - es getResource () caro?
- Android: ¿Cómo liberar recursos cuando termina la aplicación?
- Ningún paquete conocido al obtener valor para el número de recurso
- ¿Cómo puedo cargar una clase de un archivo jar empaquetado en mi archivo .apk?
- Escapar comillas simples en el recurso xml para Android
- La biblioteca de Android no lanza sus recursos a otros proyectos
- ¿Por qué es imposible acceder a los recursos de manera estática?
- ¿Es JPG realmente sólo aceptable para su uso en Android?
- Con los recursos predeterminados en la carpeta dibujable (tamaño MDPI), ¿cuál es el punto de la carpeta drawable-mdpi?
- Obtener Id de recurso de ImageView
- Localización y travesaños
Asegúrese de que debe volver a configurar el adaptador después de seleccionar otro archivo de configuración regional. Si utiliza RecyclerView, a continuación, defina LayoutManager en la vista de reciclado de la siguiente manera:
RecyclerView yourRecyclerView= (RecyclerView) findViewById(R.id.yourRecyclerView); LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false); rc_qList.setHasFixedSize(true); rc_qList.setLayoutManager(layoutManager); RecyclerViewAdapter yourAdapter = new RecyclerViewAdapter (MainActivity.this, yourArrayList); rc_qList.setAdapter(yourAdapter);
Puede obtener el idioma actual del dispositivo utilizando el objeto Locale
y compararlo con las constantes del objeto Locale
. Por ejemplo:
Log.d(TAG, "onCreate: "+Locale.ENGLISH); Log.d(TAG, "onCreate: "+Locale.getDefault().getDisplayLanguage()); Log.d(TAG, "onCreate: "+Locale.getDefault().getDisplayCountry()); Log.d(TAG, "onCreate: "+Locale.getDefault().getCountry()); Log.d(TAG, "onCreate: "+Locale.getDefault().getLanguage());
huellas dactilares:
onCreate: en onCreate: English onCreate: United Kingdom onCreate: GB onCreate: en
No olvide llamar a adapter.notifyDataSetChanged()
después de que su colección de datos ha cambiado para asegurarse de que el adaptador aplica los cambios.