读书人

android上实现英汉(汉英)排序的简单

发布时间: 2012-11-04 10:42:42 作者: rapoo

android下实现英汉(汉英)排序的简单实现

1.引入frameworks/base/core/java/com /android/internal/util/HanziToPinyin.java文件到你的工程里面:

public class DataComparator implements Comparator<Object> {    Collator collator = Collator.getInstance(java.util.Locale.CHINA); // 调入这个是解决中文排序问题    @Override    public int compare(Object object1, Object object2) {        HashMap<String, String> map1 = (HashMap<String, String>)object1;        HashMap<String, String> map2 = (HashMap<String, String>)object2;        String name1 = getFirstChar(map1.get("appName"));        String name2 = getFirstChar(map2.get("appName"));        String key1 = getPinYin(name1);        String key2 = getPinYin(name2);        return key1.compareTo(key2);    }    public DataComparator() {    }    private String getFirstChar(String str) {        if (TextUtils.isEmpty(str)) {            return "";        }        String convert = "";        char word = str.charAt(0);        convert += word;        return convert.toUpperCase();    }    private String getPinYin(String input) {        ArrayList<Token> tokens = HanziToPinyin.getInstance().get(input);        StringBuilder sb = new StringBuilder();        if (tokens != null && tokens.size() > 0) {            for (Token token : tokens) {                if (Token.PINYIN == token.type) {                    sb.append(token.target);                } else {                    sb.append(token.source);                }            }        }        return sb.toString().toLowerCase();    }}



读书人网 >Android

热点推荐