Hola en mi aplicación, necesito mostrar la dirección de entrada según la configuración regional establecida por el usuario. ¿Alguien ha trabajado o formato de direcciones o tiene algún puntero en la plataforma Android?Formateo de direcciones basado en la configuración regional en android
Respuesta
Echa un vistazo googlei18n/libaddressinput: Google’s postal address library, powering Android and Chromium. Hay dos módulos en el proyecto: android y: common. Solo debe necesitar: común para formatear la dirección para la visualización de configuración regional.
import android.location.Address;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.google.i18n.addressinput.common.AddressData;
import com.google.i18n.addressinput.common.FormOptions;
import com.google.i18n.addressinput.common.FormatInterpreter;
...
public static String getFormattedAddress(@NonNull final Address address,
@NonNull final String regionCode) {
final FormatInterpreter formatInterpreter
= new FormatInterpreter(new FormOptions().createSnapshot());
final AddressData addressData = (new AddressData.Builder()
.setAddress(address.getThoroughfare())
.setLocality(address.getLocality())
.setAdminArea(address.getAdminArea())
.setPostalCode(address.getPostalCode())
.setCountry(regionCode) // REQUIRED
.build());
// Fetch the address lines using getEnvelopeAddress,
List<String> addressFragments = formatInterpreter.getEnvelopeAddress(addressData);
// join them, and send them to the thread.
return TextUtils.join(System.getProperty("line.separator"),
addressFragments);
}
NOTA: regionCode debe ser un código de país ISO2 válida, porque aquí es donde el intérprete formato de tira del formato de dirección de. (Consulte RegionDataConstants para conocer la lista de formatos, si le interesa)
Establece el código de región CLDR de 2 letras de la dirección; ver AddressData # getPostalCountry(). A diferencia de otros valores pasados al constructor , el código de región nunca puede ser nulo.
Ejemplo: US
801 Chestnut St
ST. LOUIS, MO 63101
Ejemplo: JP
〒1600023
Nishishinjuku
3-2-11 Nishishinjuku Shinjuku-ku Tokyo
He estado buscando este tipo de biblioteca, ¡muchas gracias por la respuesta! –
He hecho un poco de localización en otras plataformas. Aquí hay una guía de localización para Android: http://developer.android.com/guide/topics/resources/localization.html#using-framework
Un enfoque sería utilizar recursos localizados para almacenar las cadenas de MessageFormat que corresponden al diseño de direcciones para cada configuración regional que desee. A partir de ahí, necesitará una referencia a los estándares de bloque de direcciones globales y crear las cadenas de formato para cada configuración regional que necesite.
Gracias, me refiero a la misma localización de Android que tiene API de direcciones, pero no se proporciona el formato de la dirección en función de la configuración regional seleccionada. – shailbenq
Creo que el razonamiento es que una dirección postal ya ingresada "pertenece" a una configuración regional y tiene una forma fija de formatearla. No tiene mucho sentido, por ejemplo, expresar una dirección postal de EE. UU. Por convenciones alemanas o viceversa. Si está accediendo a la base de datos de ContactsContract, simplemente use el campo de dirección formateada de la entidad StructuredPostal. – tiguchi
En este [código de ejemplo de Google] (http://developer.android.com/training/basics/location/geocoding.html) formatean una línea de dirección con una idea similar a mi sugerencia. No estoy seguro si hay una manera más fácil. – James
- 1. Configuración regional en Android
- 2. Cómo formateo una moneda para una configuración regional en Java
- 3. ¿Cómo puedo modificar la configuración regional predeterminada en android?
- 4. Obtener la cadena de la configuración regional predeterminada mediante una cadena en la configuración regional específica
- 5. Configuración de la configuración regional de Java
- 6. ¿Cómo formateo la fecha actual de la configuración regional del usuario?
- 7. ¿Falta la configuración regional en Java?
- 8. Cambiar la configuración regional predeterminada en Symfony2
- 9. La configuración regional no existe en Java
- 10. Tapiz: página de inicio use configuración regional en inglés en lugar de configuración regional predeterminada
- 11. Encontrar la configuración regional del controlador en Spring MVC
- 12. Cambiar la configuración de idioma (configuración regional) para el dispositivo
- 13. Cambiar la configuración regional del emulador Android automáticamente
- 14. cambiar la configuración regional de la fecha
- 15. ¿Forzar Android DateUtils.getRelativeDateTimeString() para ignorar la configuración regional del dispositivo?
- 16. Cambiar la configuración regional en tiempo de ejecución en Swing
- 17. Código de configuración regional para hebreo/¿Referencia a otros códigos de configuración regional?
- 18. "atof" independiente de la configuración regional?
- 19. ¿Depende de la configuración regional SimpleDateFormat?
- 20. Configuración regional del navegador en Playframework
- 21. ¿Cómo validar una configuración regional en Java?
- 22. Caracteres de índice específicos de configuración regional
- 23. Agregar una configuración regional en Mac OSX
- 24. Nombres de configuración regional válidos
- 25. Can isdigit legítimamente depende de la configuración regional en C
- 26. Cambiar la configuración regional en el inicio de sesión
- 27. Git GUI: cómo cambiar la configuración regional
- 28. String.Format considere la configuración regional o no?
- 29. Grails cómo cambiar la configuración regional actual
- 30. Android: elegir entre dos idiomas sin "configuración regional"
puedo saber la razón de -1 puntuaciones para esta pregunta. – shailbenq