最近在做一个联系人列表这方面的东西,遇到了中文联系人按拼音排序的问题。看到了android项目源码里面有一个叫“ContactLocaleUtils”的类正好可以拿来用,怎么引用?类的地址:http://android.git.kernel.org/?p=platform/packages/providers/ContactsProvider.git;a=blob;f=src/com/android/providers/contacts/ContactLocaleUtils.java;h=1c2ad979efdef07f7bcc2354e8f5656c51b8dd51;hb=HEAD有人知道么?求解答~
ClassLoader loader = getClassLoader();
Class<?> clz = file
.loadClass(
"com.android.providers.contacts.ContactLocaleUtils",
loader);
Class<?>[] para = new Class[2];
para[0] = String.class;
para[1] = Integer.class;
Method m = clz.getMethod("getSortKey", para);
Object[] o = new Object[2];
o[0] = new String("displayName");
o[1] = new Integer(3);
pinyin = m.invoke(m, o).toString();
报"NoSuchMethodException"异常~坑爹了~
这只是没有办法的办法,我是想能不能有更好的办法~比如 重新编译一个SDK,或者其他什么的……
你的出错,我觉得是para[1] = Integer.class;这行有问题,对应的函数的定义是String getSortKey(String displayName, int nameStyle),int和integer应该是不同的东西吧。