Как получить контактную информацию для контакта в Android с помощью LOOKUP KEY? - PullRequest
0 голосов
/ 12 мая 2019

Я пытался использовать этот код, но я не могу получить данные из метода onLoadFinished, у меня есть cursor.columnCount = 7 и cursor.getCount = 0.Всякий раз, когда я пытаюсь получить данные, как-курсор.getString (cursor.getColumnIndex (проекция [0])) я получаю сообщение об ошибке, говоря, что размер 0 и индекс 0.

private static final String[] PROJECTION =
        {
                ContactsContract.Data.PHOTO_THUMBNAIL_URI,
                ContactsContract.Data.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Phone._ID,
                ContactsContract.CommonDataKinds.Email.ADDRESS,
                ContactsContract.CommonDataKinds.Email.TYPE,
                ContactsContract.CommonDataKinds.Email.LABEL,
                ContactsContract.CommonDataKinds.Email.ADDRESS
        };
private static final int DETAILS_QUERY_ID = 0;

private static final String SELECTION = ContactsContract.Data.LOOKUP_KEY + " = ?";
private String[] selectionArgs = { "" };
String lookupKey;

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    lookupKey=getArguments().getString("LOOKUPKEY");
    getLoaderManager().initLoader(DETAILS_QUERY_ID, null, this);

}


@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
    selectionArgs[0] = lookupKey;

    return new CursorLoader(
            getActivity(),
            ContactsContract.Data.CONTENT_URI,
            PROJECTION,
            SELECTION,
            selectionArgs,
            null
    );

}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {

}

@Override
public void onLoaderReset(@NonNull Loader<Cursor> loader) {

}

}

1 Ответ

0 голосов
/ 13 мая 2019

я сформулирую это как ответ: ваш код кажется правильным, но переданное значение не вместо передачи lookupKey вы передаете имя контакта фрагменту.

изменить private static final int CONTACT_KEY_INDEX на 3, а не 1. это должно представлять индекс LOOKUP_KEY в вашем массиве проекций

...