Как получить список контактов, сохраненных с ContactsContract - PullRequest
0 голосов
/ 12 февраля 2019

Мне просто нужно заполнить listView списком моих локальных контактов с контрактом контактов, но по какой-то причине listView все еще пуст.

По какой-то причине, когда инициализируется LoaderManager, он равен нулю

Я также добавил разрешения в свой манифест использования разрешений android: name = "android.permission.READ_CONTACTS

Вот мой код:

ListView lstContactes;
public static final int CONTACT_LOADER_ID = 1;
//private SimpleCursorAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_contactes);
    lstContactes = findViewById(R.id.lstContactes);

    getLoaderManager().initLoader(1, null, this).forceLoad();
}


@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String mColumnProjection[] = new String[]{ ContactsContract.Contacts.DISPLAY_NAME_PRIMARY};
    switch (id)
    {
        case CONTACT_LOADER_ID:
            /*CursorLoader cur = new CursorLoader(this,
                    ContactsContract.Contacts.CONTENT_URI,
                    null,null,null,null);*/

            CursorLoader cursor = new CursorLoader( this,ContactsContract.Contacts.CONTENT_URI,
                    mColumnProjection,
                    null,
                    null,
                    null);
            return cursor;
    }
    return null;
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    SimpleCursorAdapter adaptador;
    switch (loader.getId())
    {
        case CONTACT_LOADER_ID:
        adaptador = (SimpleCursorAdapter) lstContactes.getAdapter();
        if(adaptador != null) adaptador.swapCursor(data);
    }
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
    SimpleCursorAdapter adaptador;
    switch (loader.getId())
    {
        case CONTACT_LOADER_ID:
            adaptador = (SimpleCursorAdapter) lstContactes.getAdapter();
            if(adaptador != null) adaptador.swapCursor(null);
    }
}

}

...