Android 城市列表选择

最近开发一个城市选择的功能,找了这个文章
Android 城市列表选择

在这里插入图片描述
结果发现它使用的拼音转换库pinyin4j有一个很严重的问题,竟然长沙chang sha识别为zhang sha,结果长沙北分在Z那一栏…
在这里插入图片描述

这是个多音字问题,长可以读chang,也可以读zhang。

那咋办?

找到一个网友自己做的自定义词库的

适用于Java和Android的快速、低内存占用的汉字转拼音库。
github:https://github.com/promeG/TinyPinyin

这位网友还做了个中国地区适配的库:
在这里插入图片描述
这下长沙顺利回到了了chang sha。

但是又有一个问题,长治chang zhi还是zhang zhi
在这里插入图片描述
有2个解决办法,1是自定义词典

    compile 'com.github.promeg:tinypinyin:2.0.3' // TinyPinyin核心包,约80KB

    compile 'com.github.promeg:tinypinyin-lexicons-android-cncity:2.0.3' // 可选,适用于Android的中国地区词典
        // 添加中文城市词典
        Pinyin.init(Pinyin.newConfig().with(CnCityDict.getInstance(this)));

        // 添加自定义词典
        Pinyin.init(Pinyin.newConfig()
                .with(new PinyinMapDict() {
                    @Override
                    public Map<String, String[]> mapping() {
                        HashMap<String, String[]> map = new HashMap<String, String[]>();
                        map.put("长治",  new String[]{"CHANG", "ZHI"});
                        map.put("长沙",  new String[]{"CHANG", "SHA"});
                        map.put("长春",  new String[]{"CHANG", "CHUN"});
                        map.put("重庆",  new String[]{"CHONG", "QING"});

                        return map;
                    }
                }));
Pinyin.toPinyin("长沙", "")

2是改这位网友的词库,然后通过导入lib的方式使用

在这里插入图片描述
至于用哪种方法自己看怎么来方便了…
在这里插入图片描述

demo
https://github.com/mocn26169/CityselectDemo

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值