我试图通过ContactsContract使用查询来获取联系人 以下代码抛出异常。 java.lang.ClassCastException。
public class ContactManager extends Activity{
ArrayList<String> contactsList = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] contacts = getContactNames();
}
public String[] getContactNames(){
try{
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
while (cursor.moveToNext()) {
contactsList.add(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
}
return (String []) contactsList.toArray();
}
catch(Exception e){
Log.e("WOw", e.toString());
return null;
}
}
}
有什么想法吗? 我没有忘记添加权限
答案 0 :(得分:0)
方法toArray()
返回Object
数组,无法转换为String
数组。
您必须为方法提供一个参数来指定类型:
return (String[]) contactsList.toArray(new String[contactsList.size()]);
您可以在documentation中找到更多详细信息。