0

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;
    }
        }
        }

何か案が?許可を追加するのを忘れていませんでした

4

1 に答える 1

0

メソッドtoArray()は の配列を返しますが、 の配列にObjectキャストすることはできませんString

タイプを指定するには、メソッドに引数を提供する必要があります。

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

詳細については、ドキュメントを参照してください。

于 2012-06-17T16:28:09.907 に答える