Я знаю, что есть много общих вопросов, подобных этому, но я просто не могу найти решение. Когда я пытаюсь инициализировать мой загрузчик с помощью getLoaderManager().initLoader(LOADER_ID, null, this);
Ошибка Метод initLoader (int, Bundle, LoaderManager.LoaderCallbacks) в типе LoaderManager не применим для аргументов (int, null, Gridview).LoaderManager не инициализируется ... проблема с getLoaderManager(). InitLoader
Это заставляет меня думать, что программа не признает, что Gridview реализует диспетчер загрузчика. Я не знаю, почему это и куда идти отсюда. Я пробовал играть с разными импортами, но это не сработало. Я также убедился, что у меня есть правильные загрузки для поддержки загрузчиков. Код, который я использую, приведен ниже.
package com.example.camerapreview;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
//Omissis imports
public class Gridview extends Activity implements LoaderManager.LoaderCallbacks<Cursor>{
private static final String TAG = "Checking Database";
private static final String TAG1 = "Checking Thumbnail";
Cursor cursor;
int columnindexid;
int columnindexdata;
int videoidindex;
int videopathindex;
GridviewData entry;
GridView gridview;
VideoAdapter videoadapter;
Cursor curs;
ImageLoaderConfiguration config;
String[] mediaColumns = {
MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.TITLE,
MediaStore.Video.Media.MIME_TYPE
};
private static final int LOADER_ID = 1;
int flags = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.preview);
gridview = (GridView) this.findViewById(R.id.gridview);
cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
columnindexid = cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID);
columnindexdata = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
entry = new GridviewData(this);
entry.open();
getLoaderManager().initLoader(LOADER_ID, null, this);
DataEntry putitin = new DataEntry(entry, this);
putitin.execute();
//the cursor used in the cursor adapater
curs = entry.adapterCursor();
videoidindex = entry.Indexfinder(curs);
videopathindex = entry.Indexfinder2(curs);
config = new ImageLoaderConfiguration.Builder(this)
.imageDownloader(new BaseImageDownloader(this))
.build();
ImageLoader.getInstance().init(config);
Log.i(TAG, "Before set adapater");
gridview.setAdapter(new VideoAdapter(this, curs, flags));
}
}
EDIT:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = { GridviewData.VIDEOID, GridviewData.VIDEOFILEPATH };
return new CursorLoader(Gridview.this, MyContentProvider.CONTENT_URI, projection, null, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
cursoradapter.swapCursor(c);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
cursoradapter.swapCursor(null);
}
Как вы реализуете остальные унаследованные функции? (onCreateLoader, onLoadFinished, onLoaderReset) – zozelfelfo
Я только что редактировал сообщение – Papajohn000
Я не вижу ничего странного, но импорт вашего loaderManager вам действительно нужна поддержка версии v4? mine - 'import android.app.LoaderManager.LoaderCallbacks;' – zozelfelfo