안녕하세요. 내 응용 프로그램에서 사용자가 설정 한 로케일에 따라 입력 주소를 표시해야합니다. 누구든지 포맷 작업을했거나 안드로이드 플랫폼에서 어떤 포인터를 가지고 있습니까?android의 로케일을 기반으로 한 주소 형식화
답변
체크 아웃 googlei18n/libaddressinput: Google’s postal address library, powering Android and Chromium 프로젝트에는 두 개의 모듈이 있습니다 : android and : common. 로케일 인식 디스플레이를 위해 주소를 형식화하려면 common 만 필요합니다.
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);
}
참고 : regionCode는 유효한 iso2 국가 코드 여야합니다. 여기서는 형식 인터프리터가 주소 형식을 가져 오는 위치이기 때문입니다. 궁금하다면 형식 목록은 RegionDataConstants을 참조하십시오.
주소의 2 문자 CLDR 지역 코드를 설정합니다. AddressData # getPostalCountry()를 참조하십시오. 빌더에 전달 된 다른 값과 달리 지역 코드는 절대 null이 될 수 없습니다.
예 : US
801 CHESTNUT ST
ST. LOUIS, MO는 63,101
예 : JP
〒1600023
는
니시
3-2-11 니시 신주쿠 구 도쿄
나는 이런 종류의 도서관을 찾고 있었는데, 그 해답을 많이 주셔서 감사합니다! –
나는 다른 플랫폼에서 상당히 현지화를 수행했습니다. Android의 현지화 안내는 다음과 같습니다. http://developer.android.com/guide/topics/resources/localization.html#using-framework
한 가지 방법은 원하는 각 로캘의 주소 레이아웃에 해당하는 MessageFormat 문자열을 저장하는 지역화 된 리소스를 사용하는 것입니다. 거기에서 전체 주소 블록 표준에 대한 참조가 필요하며 필요한 각 로캘에 대한 형식 문자열을 만듭니다.
고마워, 나는 그것과 동일한 안드로이드 로컬 리 제이션을 언급하고있다. 주소 API는 있지만 선택된 로케일에 기반하여 주소의 포맷은 제공되지 않는다. – shailbenq
나는 이미 입력 된 우편 주소가 로캘에 "속하며"고정 된 서식 지정 방법을 가지고 있다고 생각합니다. 예를 들어 독일의 관습이나 다른 방법으로 미국 우편 주소를 표현하는 것은별로 의미가 없습니다. ContactsContract 데이터베이스에 액세스하는 경우 StructuredPostal 엔터티의 형식화 된 주소 필드를 사용하면됩니다. – tiguchi
이 [Google example code] (http://developer.android.com/training/basics/location/geocoding.html)에서는 제 제안과 유사한 아이디어를 사용하여 주소 입력란의 형식을 지정합니다. 더 쉬운 방법이 있는지 확실하지 않습니다. – James
- 1. 레일 3.1 로케일을 기반으로 한 레코드 표시
- 2. 로케일을 기반으로 날짜 시간 패턴을 결정하십시오.
- 3. 등을 기반으로 한 뷰를 기반으로 한 뷰
- 4. Facebook 로케일을 받으십시오
- 5. Google 지역 정보 - 사용자 입력없이 형식화 된 주소 받기
- 6. Google지도 - 결과 가져 오기 [0]. 형식화 된 주소에서. 서식 한 주소
- 7. 로케일을 내선 전용으로 전환
- 8. 로케일을 고려하지 않도록 설정합니다.
- 9. Android 로케일을 즉시 변경하려고합니다.
- 10. 양식을 기반으로 한 보고서
- 11. 로케일을 세션에 보관 하시거나 양식과 함께 보내시겠습니까?
- 12. 키보드 로케일을 변경하려면 어떻게해야합니까?
- 13. 로케일을 변경하는 Portletfilter?
- 14. 로케일을 앱 위젯으로 설정
- 15. 문자열에서 로케일을 선택하는 방법
- 16. 로케일을 동적으로 전환 하시겠습니까?
- 17. String.Format은 로케일을 고려하지 않습니까?
- 18. Android에서 실행중인 로케일을 확인하십시오.
- 19. 로케일을 위젯으로 강제하는 방법
- 20. 로케일을 message.properties로 확인하는 방법
- 21. 전자 메일 주소를 기반으로 한 항목 허용
- 22. 로케일을 변경 한 후 리소스를 변경하는 중 버그가 발생했습니다.
- 23. Android의 MFMailComposeViewController?
- 24. 해시를 기반으로 한 균일 한 난수 생성
- 25. 다른 로케일을 인쇄하는 방법은 무엇입니까?
- 26. Java/Android의 NetBIOS/FQDN 이름에 대한 IP 주소
- 27. Rails I8n : HTTP 헤더에서 요청한 로케일을 사용할 수없는 경우 기본 로케일을 사용 하시겠습니까?
- 28. drawRect를 기반으로 한 UIView의 크기
- 29. 입력란을 기반으로 한 회 전자
- 30. 배열 값을 기반으로 한 이미지
가 나는 이유를 알 수 -1 등급 이 질문에. – shailbenq