android 通讯录中的中文名字如何通过名字的拼音首字母查询?  大虾们 教教小弟了  不胜感激!

解决方案 »

  1.   

    最简单方法:在数据库中增加一列:拼音在添加通讯录时将 汉字姓名转换为拼音 添加到数据库查询时即可根据拼音模糊查询至于汉字转换为拼音,java有几种方法可以实现具体楼主自己可以查资料,以前我也做过类似的!!
      

  2.   

    2楼还在做android不 方便留下QQ号  联系下不?
      

  3.   

    感谢2楼 搞定了  贴出来大家分享下 用了pinyin4j-2.5.0.jar
      public static  String toPinYintwo(String hanzhis){
            CharSequence s= hanzhis;
            
            char [] hanzhi=new char[s.length()];
            for(int i=0;i<s.length();i++){
                hanzhi[i]=s.charAt(i);
            }
            
            char [] t1 =hanzhi; 
            String[] t2 = new String[s.length()];
            /** *//**
             * 设置输出格式
             */
            net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat t3 = new
            HanyuPinyinOutputFormat();
            t3.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            t3.setVCharType(HanyuPinyinVCharType.WITH_V);
            
            int t0=t1.length;
            String py = "";
            try {
                for (int i=0;i<t0;i++)
                {
                    t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
                    py=py+t2[0].toString();
                }
            }
            catch (BadHanyuPinyinOutputFormatCombination e1) {
                e1.printStackTrace();
            }
            
            return py.trim();
            }