Adapter пустой потому что.
В методе getData вы получаете Cursor и инициализируете Loader. Поскольку Cursor пуст, ветка if не срабатывает и adapter не инициализируется. Далее Loader завершает свою загрузку методом onLoadFinished, в котором вызывается adapter.swapCursor(c). adapter - null, поэтому получаем краш.
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
if (adapter != null) {
adapter.swapCursor(c);
}
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
if (adapter != null) {
adapter.swapCursor(null);
}
}
Ещё вы инициализируете adapter в цикле, что делать не надо.