ActionBarSherlock을 기반으로하는 액티비티와 프래그먼트를 사용하고 있습니다. SQLite 데이터베이스에서 행을 읽으려는 경우 ContentProvider
대신 Loader
을 사용하려고하는데 나를 위해 LoaderEx을 얻으려고합니다.SQLiteCursorLoader에서 로더로 변환 할 수 없습니다. <Cursor>
나는 고집이 문제와 붙어있어 내 조각의 onCreateLoader
콜백, ADT가 지속적으로 나에게 오류를주고있다 :
"Cannot convert from SQLiteCursorLoader to Loader<Cursor>"
것은 내가 안드로이드 V4 지원 라이브러리를 사용하고 있습니다. DEX 오류 때문에 ActionBarSherlock과 LoaderEx에서 android-support-v4.jar
을 제거하고이를 기본 프로젝트에 추가했습니다. 그런 다음 ABS와 LoaderEx를 모두 사용하도록했습니다.
ABS 및 LoaderEx는 모두 라이브러리 프로젝트로 추가됩니다.
내가 v4 가져 오기만을 사용하고 있는지 확인했습니다. 또한 LoaderExDemo는 에뮬레이터에서 컴파일되고 작동합니다.
이 내 조각의 수입은 다음과 같습니다
import com.actionbarsherlock.app.SherlockListFragment;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.support.v4.widget.SimpleCursorAdapter;
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 com.commonsware.cwac.loaderex.SQLiteCursorLoader;
여기 내 조각 선언입니다 :
public class MeetingListFragment
extends SherlockListFragment
implements LoaderManager.LoaderCallbacks<Cursor> {
private JournalDatabaseHelper db = null;
private SimpleCursorAdapter adapter = null;
private SQLiteCursorLoader loader = null;
그리고 여기 getLoader
콜백 메소드이다 : 나는 앞뒤로 갔어요
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
loader = new SQLiteCursorLoader(getSherlockActivity().getApplicationContext(),
db,
"SELECT _ID, meeting_timestamp, meeting_desc FROM meeting " +
"ORDER BY meeting_timestamp DESC",
null);
return loader; // <<< this is the line of the ADT/Eclipse error
}
이걸로 몇 시간 동안. SO에 대한 일부 답변은 해당 지역에 있지만 실제 해결책은 아닙니다. 무슨 일 이니?
정말 고마워요! 물론 그 것이었다. 나는 그 문서를 읽었지 만, 나는 충분히주의를 기울이지 않았다. 지원 라이브러리가 처음으로 복잡하지 않은 것은 아닙니다. –
@ JereKäpyaho : 예, 도서관을 쓰는 우리 모두는 진저 브레드가 멀어지기를 참을성있게 기다리고 있습니다. :-) – CommonsWare