こんにちは私のアプリケーションでは、ユーザーが設定したロケールに従って入力アドレスを表示する必要があります。誰かが働いているか、書式設定に取り組んでいるか、Androidプラットフォームでそれを指すポインタを持っていますか?アンドロイドのロケールに基づく住所書式
答えて
googlei18n/libaddressinput: Google’s postal address library, powering Android and Chromiumを参照してください。プロジェクトには、アンドロイドと:コモンの2つのモジュールがあります。ロケール対応の表示のためにアドレスをフォーマットするには、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の国コードでなければなりません。
アドレスの2文字のCLDRリージョンコードを設定します(詳細については、RegionDataConstantsを参照してください)。 AddressData#getPostalCountry()を参照してください。 ビルダーに渡される他の値とは異なり、リージョン・コードは決してnullにはなりません。
例:US
801 CHESTNUT ST
ST。 LOUIS、MO 63101
例:JP
〒1600023
西新宿
3-2-11西新宿都新宿区TOKYO
私はこの種のライブラリを探してきました。ありがとうございました! –
私は他のプラットフォームでかなりのローカライズを行っています。 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. ロケールに基づくURL
- 2. 配達先住所に基づくSylius VAT
- 3. 住所または都市に基づくGPS座標の検索/表示
- 4. の書式ロケール
- 5. C#形式のイベントに基づくヘルプファイルの場所
- 6. Googleマップの運転場所に基づいて住所をフィルタリングする
- 7. 式に基づくWebサーバー
- 8. 住所を書式設定してリンゴマップリンクにする方法
- 9. 別のセルの日付に基づく条件付き書式
- 10. 文字列の長さに基づくComboBoxの書式設定
- 11. 複数のフィールドに基づく条件付き書式設定
- 12. 非表示列に基づくDataGridView行の書式設定
- 13. Excelの日付と値に基づく条件付き書式
- 14. 別のセル値に基づくカスタム通貨書式
- 15. 国番号に基づく電話番号の書式設定
- 16. 他の列に基づくExcel条件付き書式設定
- 17. 2つのビューモデルに基づく条件付き書式設定
- 18. 属性値に基づくSSRS書式設定行の色
- 19. 多くの住所のジオコーディング
- 20. シート - 別の列の日付に基づく列内のセル(日付)に基づく条件付き書式
- 21. ロケールのJava日付書式
- 22. IBM Content Navigator JSONResultSetRow値に基づく書式
- 23. 番号とシンボルに基づく条件付き書式
- 24. セントに基づく条件付き書式
- 25. アンドロイド(api 8またはheigher)住所から住所を取得する
- 26. opencartのオプションに基づく数式
- 27. エクスプレスルーティング - ロケールに基づいてリダイレクト
- 28. GoogleアドレスAPI URL住所住所の例
- 29. rails 3.1ロケールに基づくレコードを表示
- 30. 2台のマシンの速度に基づく方程式を書く
私はのために-1評価の理由を知ることができますこの質問のために。 – shailbenq