1

내 안드로이드 애플 리케이션을위한 ListFragment와 Loader Class를 사용하고 싶습니다. (벌집 수준 SDK하지만 구글 릴리스 비교 패키지) 조각에서안드로이드 ListFragment 커서 관리

, 그것은 Fragmemt 수명주기와 관리 커서 API를 가지고있다

활동 "startManagingCursor(Cursor c)"

또는

조각을 가지고 그것의 수명주기에서 커서를 자동으로 관리합니까?

답변

2

당신의 질문이 맞는지 확신 할 수 없지만 Loader를 사용할 때 커서가 ListFragment에서 자동으로 관리되는지 묻는다면 나는 대답을 '그렇습니다'라고 생각합니다.

ListFragment에서 LoaderManager.LoaderCallbacks 인터페이스를 구현 한 다음 LoaderManager의 initLoader() 및 restartLoader()를 사용하여 ListFragment 수명주기 동안 데이터와 커서를 관리하십시오. 기본이되는 adatpter는, swapCursor() 메소드를 서포트하지 않으면 안됩니다.


class Foo extends ListFragment implements LoaderManager.LoaderCallbacks { 

    private MyAdapter mAdapter; 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     mAdapter = new MyAdapter(); 
     getLoaderManager().initLoader(0, null, this); 
    } 

    @Override 
    public Loader onCreateLoader(int id, Bundle args) { 
     Uri MY_URI = "your data URI goes here"; 
     return new CursorLoader(getActivity(), MY_URI, MY_PROJECTION, selection, selectionArgs, sortOrder); 
    } 

    @Override 
    public void onLoadFinished(Loader loader, Cursor data) { 
     mAdapter.swapCursor(data); 
    } 

    @Override 
    public void onLoaderReset(Loader loader) { 
     mAdapter.swapCursor(null); 
    } 
}
:의 라인을 따라

뭔가