2012-06-17 59 views
0

我試圖通過ContactsContract使用查詢來獲取聯繫人 以下代碼會引發異常。 java.lang.ClassCastException。當查詢聯繫人時發生異常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

你可以編輯你的問題向我們展示堆棧跟蹤並指出拋出異常的行嗎? – Pablo

回答

0

toArray()返回Object陣列中的方法,它不能被鑄造爲String數組。

你必須提供一個參數的方法來指定類型:

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

你會發現在documentation更多細節。

+0

非常感謝 – yasserbn

相關問題