嗨在我的應用程序中,我需要根據用戶設置的區域設置顯示輸入地址。有沒有人在Android平臺上工作或處理過格式或有任何指針。基於Android中的區域設置的地址格式
回答
結賬googlei18n/libaddressinput: Google’s postal address library, powering Android and Chromium。該項目中有兩個模塊:android和: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獲取格式列表。)
設置地址的雙字母CLDR區域碼;請參閱 AddressData#getPostalCountry()。與傳遞給 構建器的其他值不同,區域代碼不能爲空。
實施例:US
801 CHESTNUT ST
ST。 LOUIS,MO 63101
例:JP
〒1600023
西新宿
11年3月2日西新宿新宿區東京
我一直在尋找這類圖書館,非常感謝答案! –
我已經在其他平臺上進行了一點本地化。以下是Android本地化指南:http://developer.android.com/guide/topics/resources/localization.html#using-framework
一種方法是使用本地化資源來存儲對應於所需每個語言環境的地址佈局的MessageFormat字符串。從那裏,您需要參考全球地址塊標準,併爲您需要的每個地區創建格式字符串。
謝謝,我指的是它具有Address API的相同的Android本地化,但沒有提供基於所選區域設置的地址格式。 – shailbenq
我認爲推理是一個已經輸入的郵政地址「屬於」一個地區,並有一個固定的格式化方式。例如用德國公約或其他方式表達美國郵寄地址是沒有道理的。如果您正在訪問ContactsContract數據庫,則只需使用結構化郵遞實體的格式化地址字段。 – tiguchi
在這個[Google示例代碼](http://developer.android.com/training/basics/location/geocoding.html)中,他們使用類似於我的建議的想法格式化地址行。不知道是否有更簡單的方法。 – James
- 1. 基於Android的用戶區域設置的日期格式
- 2. 在android中設置基於本地區域
- 3. Iphone基於電話號碼格式的區域設置
- 4. 基於用戶區域的iOS設置日期格式
- 5. JQPlot - 基於區域的格式刻度
- 6. 的Setup.exe基於區域設置
- 7. 基於區域設置的驗證
- 8. 基於區域網址
- 9. 獲取Windows的區域設置格式
- 10. 基於地理位置檢測區域
- 11. Excel:如何應用基於使用c#的區域設置的日期格式?
- 12. 格式部分日期基於區域
- 13. 基於系統區域設置在C++
- 14. 格式化JSON日期格式化的日期基於區域
- 15. 在Android中設置diiferent區域設置後的日期格式異常
- 16. 在MessageFormat中使用區域設置遞歸地格式化
- 17. 關於區域設置的日期格式字符串
- 18. symfony2檢測基於域名的區域設置
- 19. 關於當前區域設置的自定義Android日期格式化
- 20. 時刻格式化區域設置
- 21. 日期格式和區域設置
- 22. Laravel 4中基於URL的區域設置檢測
- 23. ruby中基於區域設置的排序功能
- 24. Android中的自定義區域設置
- 25. 設置全球基地址
- 26. RMMapView地圖設置區域
- 27. 在模擬器的設置中更改區域格式,但應用中的區域設置不變
- 28. 如何格式化日期區域設置 - 取決於angularjs?
- 29. Android區域設置更改
- 30. PHP5中的區域設置日期格式
我能知道原因-1評級對於這個問題。 – shailbenq