查询联系人时出现异常java.lang.ClassCastException

时间:2012-06-17 16:18:17

标签: java android

我试图通过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;
    }
        }
        }

有什么想法吗? 我没有忘记添加权限

1 个答案:

答案 0 :(得分:0)

方法toArray()返回Object数组,无法转换为String数组。

您必须为方法提供一个参数来指定类型:

return (String[]) contactsList.toArray(new String[contactsList.size()]);

您可以在documentation中找到更多详细信息。