¿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: Cómo obtener un recurso id de un recurso de Android
- Android: ¿Cómo liberar recursos cuando termina la aplicación?
- Android - colors.xml recurso a valor int
- Android obtiene tipo de recurso de id
- Recursos de referencia en javadoc
- El tamaño de la instalación de la aplicación es el mismo en diferentes tipos de dispositivos
- Resources.ap_ no existe cuando compile mi proyecto android
- Android XML Cómo obtener un ID de recurso (entero) de XML
- Alcance de los valores de R.id
- ¿Hay alguna manera de utilizar los recursos android no públicos en mi aplicación?
- Android ImageButton setImageResource de la variable
- ¿Cómo encontrar cadenas sin traducir? (androide)
- Android obtiene una lista de colores de los recursos
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.