내 ListView에 행을로드하는 데 시간이 걸리기 때문에 LoaderManager를 구현하려고합니다. 내가 온라인으로 찾은 모든 사례는 CONTENT_URI를 계속 언급하고 있습니다. 대신 null 열 '의 (LoadManager, SimpleCursorAdapter, ViewBinder - URI가 없습니까?
@Override
public void onCreate(Bundle savedInstanceState)
{
...
String path = "/sdcard/mytunesdb.sqlite"; // Warning, yes, I know..
db = SQLiteDatabase.openDatabase(path, null, 0);
lvCustomList = (ListView) findViewById(R.id.lv_custom_list);
String[] columns = new String[] { "Name" };
// THE XML DEFINED VIEWS FOR EACH FIELD TO BE BOUND TO
int[] to = new int[] { R.id.lv_tune };
Cursor c = db.rawQuery("SELECT rowid _id, Name FROM Tune ORDER BY Name", null);
cAdapter = new MySimpleCursorAdapter(this, R.layout.like_hate_row, c, columns, to, 0);
viewBinder = new CustomViewBinder();
cAdapter.setViewBinder((ViewBinder) viewBinder);
lvCustomList.setAdapter(cAdapter);
OK, 그래서 cAdapter가 null의 돌기가 생성되도록 위의 코드를 변경 한 후 LoaderManager 콜백을 구현 시작합니다
여기 내 ListView에 내용을로드하는 내 예전의 코드입니다 '매개 변수). 이것은 내가 지금까지 얻은 것입니다. 어떻게 rawQuery를 onCreateLoader 메서드에 넣을 수 있습니까?
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
String[] columns = new String[] { "Name" };
!!! HELP - I don't have a CONTENT_URI - my database is external - what do I put below?
CursorLoader cursorLoader = new CursorLoader(getActivity(),
TutListProvider.CONTENT_URI, columns, null, null, null);
return cursorLoader;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
{
cAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader)
{
cAdapter.swapCursor(null);
}
대신 SQL 데이터베이스에 URI 코드를 유지하고 ContentProvider를 구현해야합니까 ??