sha*_*enq 7 android street-address
您好,在我的应用程序中,我需要根据用户设置的区域设置显示输入地址.有没有人在Android平台上工作或解决格式或有任何指针.
查看googlei18n/libaddressinput:谷歌的邮政地址库,为Android和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);
}
Run Code Online (Sandbox Code Playgroud)
注意:regionCode必须是有效的iso2国家/地区代码,因为这是格式解释器从中提取地址格式的位置.(如果你很好奇,请参阅RegionDataConstants获取格式列表.)
设置地址的2个字母的CLDR区域代码; 请参阅AddressData#getPostalCountry().与传递给构建器的其他值不同,区域代码永远不能为空.
示例:美国
801 CHESTNUT ST
ST.LOUIS,MO 63101
示例:JP
〒1600023NISHISHINJUKU3-2-11
西新
珠口新宿区东京
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |