获取android和java.lang.IllegalStateException中的联系人号码

获取android和java.lang.IllegalStateException中的联系人号码,android,android-contacts,Android,Android Contacts,我试图得到联系电话和姓名。我得到的名字是正确的,但当我试图得到的数字,我得到的错误 代码如下: public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); ArrayList<String> contactList = new ArrayList<String>();

我试图得到联系电话和姓名。我得到的名字是正确的,但当我试图得到的数字,我得到的错误

代码如下:

public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    ArrayList<String> contactList = new ArrayList<String>();

    switch (reqCode) {
    case (0):
        if (resultCode == Activity.RESULT_OK) {
            Uri contactData = data.getData();
            Cursor c = getContentResolver().query(contactData, null, null,
                    null, null);
            if (c.moveToFirst()) {
                String name = c
                        .getString(c
                                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));


                String phoneNumber = c.getString(c
                        .getColumnIndex(Phone.NUMBER));

                String contact = name + "" + phoneNumber;

                contactList.add(contact);
            }
        }
        break;
    }
08-12 16:25:19.790:E/WindowManager(14381):android.view.WindowLeaked:Activity tr.com.turkcell.shmobile.main活动已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@421c0090原来是加在这里的 08-12 16:25:19.790:E/WindowManager(14381):在android.view.ViewRootImpl。(ViewRootImpl.java:374) 08-12 16:25:19.790:E/WindowManager(14381):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292) 08-12 16:25:19.790:E/WindowManager(14381):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224) 08-12 16:25:19.790:E/WindowManager(14381):在android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149) 08-12 16:25:19.790:E/WindowManager(14381):在android.view.Window$LocalWindowManager.addView(Window.java:549) 08-12 16:25:19.790:E/WindowManager(14381):在android.app.Dialog.show(Dialog.java:277) 08-12 16:25:19.790:E/WindowManager(14381):在android.app.ProgressDialog.show(ProgressDialog.java:116)上 08-12 16:25:19.790:E/WindowManager(14381):在android.app.ProgressDialog.show(ProgressDialog.java:99)上 08-12 16:25:19.790:E/WindowManager(14381):在android.app.ProgressDialog.show(ProgressDialog.java:94)上 08-12 16:25:19.790:E/WindowManager(14381):在tr.com.turkcell.shmobile.MainActivity$GetProduts.onPreExecute(MainActivity.java:188) 08-12 16:25:19.790:E/WindowManager(14381):位于android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 08-12 16:25:19.790:E/WindowManager(14381):在android.os.AsyncTask.execute(AsyncTask.java:534) 08-12 16:25:19.790:E/WindowManager(14381):在tr.com.turkcell.shmobile.MainActivity$1$1.run(MainActivity.java:59) 08-12 16:25:19.790:E/WindowManager(14381):在android.app.Activity.runOnUiThread(Activity.java:4591) 08-12 16:25:19.790:E/WindowManager(14381):在tr.com.turkcell.shmobile.MainActivity$1.onClick(MainActivity.java:56) 08-12 16:25:19.790:E/WindowManager(14381):在android.view.view.performClick(view.java:4084)上 08-12 16:25:19.790:E/WindowManager(14381):在android.view.view$PerformClick.run(view.java:16966) 08-12 16:25:19.790:E/WindowManager(14381):在android.os.Handler.handleCallback(Handler.java:615) 08-12 16:25:19.790:E/WindowManager(14381):在android.os.Handler.dispatchMessage(Handler.java:92)上 08-12 16:25:19.790:E/WindowManager(14381):在android.os.Looper.loop(Looper.java:137) 08-12 16:25:19.790:E/WindowManager(14381):位于android.app.ActivityThread.main(ActivityThread.java:4754) 08-12 16:25:19.790:E/WindowManager(14381):位于java.lang.reflect.Method.Invokenactive(本机方法) 08-12 16:25:19.790:E/WindowManager(14381):位于java.lang.reflect.Method.invoke(Method.java:511) 08-12 16:25:19.790:E/WindowManager(14381):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 08-12 16:25:19.790:E/WindowManager(14381):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 08-12 16:25:19.790:E/WindowManager(14381):在dalvik.system.NativeStart.main(本机方法) 08-12 16:25:21.370:E/CursorWindow(14381):无法从包含1行29列的CursorWindow中读取第0行第1列。 08-12 16:25:21.370:D/AndroidRuntime(14381):关闭虚拟机 08-12 16:25:21.370:W/dalvikvm(14381):threadid=1:线程以未捕获异常退出(组=0x41b6a318) 08-12 16:25:21.380:E/AndroidRuntime(14381):致命异常:主 08-12 16:25:21.380:E/AndroidRuntime(14381):java.lang.RuntimeException:未能传递结果ResultInfo{who=null,request=0,result=-1,data=Intent{dat=content://com.android.contacts/contacts/lookup/209i1510398b8e8d8617/1 flg=0x1}}到活动{tr.com.turkcell.shmobile/tr.com.turkcell.shmobile.IndexActivity}:java.lang.IllegalStateException:无法从CursorWindow读取第0行第1列。在从光标访问数据之前,请确保光标已正确初始化。 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.app.ActivityThread.deliverResults(ActivityThread.java:3150)上 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.app.ActivityThread.handleSendResult(ActivityThread.java:3193) 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.app.ActivityThread.access$1100(ActivityThread.java:130) 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1243) 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.os.Handler.dispatchMessage(Handler.java:99)上 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.os.Looper.loop(Looper.java:137) 08-12 16:25:21.380:E/AndroidRuntime(14381):位于android.app.ActivityThread.main(ActivityThread.java:4754) 08-12 16:25:21.380:E/AndroidRuntime(14381):位于java.lang.reflect.Method.Invokenactive(本机方法) 08-12 16:25:21.380:E/AndroidRuntime(14381):在java.lang.reflect.Method.invoke(Method.java:511) 08-12 16:25:21.380:E/AndroidRuntime(14381):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 08-12 16:25:21.380:E/AndroidRuntime(14381):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 08-12 16:25:21.380:E/AndroidRuntime(14381):在dalvik.system.NativeStart.main(本机方法) 08-12 16:25:21.380:E/AndroidRuntime(14381):原因:java.lang.IllegalStateException:无法从游标窗口读取第0行第1列。在从光标访问数据之前,请确保光标已正确初始化。 08-12 16:25:21.380:E/AndroidRuntime(14381):在android.database.CursorWindow.nativeGetString(本机方法)上 08-12 16:25:21.380:E/AndroidRuntime(14381):位于android.database.CursorWindow.getString(CursorWindow.java:434) 08-12 16:25:21.380:E/AndroidRuntime(14381):位于android.database.AbstractWindowedCursor.getStr
08-12 16:25:19.790: E/WindowManager(14381): Activity tr.com.turkcell.shmobile.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@421c0090 that was originally added here
ContentResolver cr = getContentResolver();

        Cursor cursor = cr.query(uri, projection, selection, null, sortOrder);
    while(cursor.moveToNext()){//this loops through contacts and put them in object ContactTest which i already made
        ContactTest c1 = new ContactTest();
        c1.setContactName(cursor.getString(/*name index*/));
        c1.setContactID(cursor.getString(/*id index you will need it*/));
        Cursor pCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] {c1.getContactID()}, null);

        while(pCursor.moveToNext()){ // this loops through the contact number's

            c1.setContactPhone(pCursor.getString(pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
        }
    }