連絡先の電話番号と名前を取得しようとしています。名前を正しく取得していますが、番号を取得しようとするとエラーが発生します。
コードは次のとおりです。
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;
}
これがlogCatです:
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
E/WindowManager(14381): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 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): VM をシャットダウンしています 08-12 16:25:21.370: W/dalvikvm(14381): threadid=1: キャッチされない例外で終了するスレッド (group=0x41b6a318) 08 -12 16:25:21.380: E/AndroidRuntime(14381): FATAL EXCEPTION: main 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 を読み取ることができませんでした。Cursor からデータにアクセスする前に、Cursor が正しく初期化されていることを確認してください。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 で。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: CursorWindow から行 0、列 -1 を読み取れませんでした。Cursor からデータにアクセスする前に、Cursor が正しく初期化されていることを確認してください。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.getString(AbstractWindowedCursor.java:51) 08-12 16:25:21.380: E /AndroidRuntime(14381): android.database.CursorWrapper.getString(CursorWrapper.java:114) 08-12 16:25:21.380: