2014-05-16 4 views
1

나는 레스토랑을위한 메뉴 인 앱을 만들고 있는데, 모든 메뉴 항목을 가져 오기 위해 SQLite 데이터베이스에 액세스해야합니다. 나는 콘텐츠 제공자가 SQLiteOpenHelper로 설정되어 있고, 지금 당장 db의 모든 메뉴 항목을 가져 와서 menuItem 객체의 ArrayList에 저장하는 방법을 알아야합니다. CursorLoader가 가장 좋은 옵션이 될 것 같습니다. 구현 방법에 대해서는 약간 혼란 스러울뿐입니다. 내가 읽은 대부분의 게시물에는 SimpleCursorAdapter를 사용하는 예제가 있지만, 결국에는 결국 데이터를 목록보기에 표시하는 것으로 끝나지 만 데이터는 개별 개체에 저장해야합니다. SimpleCursorAdapter를 사용해야합니까, 아니면 다음 커서 위치로 계속 이동하여 ArrayList의 인덱스에 데이터를 저장하는 루프를 onLoadFinished 메소드에 둘 수 있습니까? 도움 주셔서 감사합니다!CursorLoader를 사용하여 데이터베이스에서 객체를 생성하고 ArrayList 배열

+0

SimpleCursorAdapter가 필요없는 데이터를 표시 할 필요가 없다면 onLoadFinished에서 루프를 돌릴 수 있습니다. – tyczj

답변

0

이미 ContentProvider로 랩핑 된 데이터베이스가있는 경우. 대부분의 작업이 완료되었습니다. Cursor 로더를 사용하여 ContentProvider에서 데이터를 가져옵니다. CursorLoader를 사용하는 이점은 LoaderManager 덕분에 initLoader()로 작성된 로더가 메모리에 남아 있다는 것입니다. 그룹으로 데이터를 분리해야하는 경우, 사용할 로더가있을 때마다 LoaderManager에서 사용할 수있는 다른 로더를 작성할 수 있습니다.

SimpleCursorAdapter는 CursorLoader에서 반환 된 커서로 ListView를 채우는 데 사용됩니다. listView 항목이 복잡한 경우 (Button 및 imageView 사용) 사용자 정의 Adapter extends CursorAdapter 클래스를 만들 수 있습니다.

관련 문제