0

Android/Java 프로그래밍으로 Sencha Touch 배경에서 왔습니다.Android 프로그래밍의 모델 및 상점 개념 (Sencha Touch와 같은)

간단한 제목 기반 응용 프로그램 (메모, 메모 텍스트, 메모 작성자, 작성일 작성 메모, 메모 메모)의 경우 제목, 텍스트, 작성자, 만든 날짜 및 날짜를 ​​Note model으로 정의 할 수 있습니다. 설명 텍스트 및 연결된 노트 개체/인스턴스가있는 Comments 모델입니다. (데이터베이스 설계를 만드는 기본 방법)

그런 다음 직렬화 된 Notes 데이터를 가져올 엔드 포인트를 알 수있는 데이터 저장소 (로컬 데이터베이스)를 정의 할 수 있습니다 (주석 객체가있는 필수 JSON 배열, 주석 객체 포함). JSON 배열에서 유용한 정보를 꺼내서 Notes 객체에 넣는 함수를 정의합니다.

보기 (Notes의 실제 목록 표시)는 Notes Stores에 액세스하며 언제든지 저장소가 변경됩니다 ListView가 자동으로 업데이트됩니다.

Android에는 이러한 멋진 메커니즘이 있습니까? ORMLite (스토어와 다소 비슷 함)를 실험했지만,이 빡빡한 외부 엔드 포인트를 달성 할 수있는 방법이 있습니까? 안드로이드에서 로컬 스토어리스트 뷰 바인딩?

답변

0

Android는 기본적으로 한 가지 유형의 데이터베이스 인 SQLite를 제공합니다. 다른 저장 옵션 (파일 시스템, 환경 설정 등)이있는 동안 DB를 원한다고 생각하는 것 같습니다. Android에는 모두 storage options에 대한 유용한 글이 있으며 여기에는 SQLite 섹션이 있습니다.

해당 데이터를 ListView와 바인딩하려면 CursorAdapter을 사용해야합니다. 보기 생성 부분을 처리하지 않으려면 대신 SimpleCursorAdapter을 사용할 수 있습니다. 그러나 그들은 다소간 같은 것입니다. 이름에서 알 수 있듯이이 어댑터는 커서와 함께 작동합니다. Cursors은 데이터베이스에서 쿼리를 실행 한 결과를 보여줍니다.

자동 업데이트를 얻으려면 CursorLoader을 사용해야합니다. 기본적으로이 사람은 백그라운드 스레드에서 데이터 쿼리를 처리 한 다음 UI 스레드에서 결과를 제공합니다. DB에 관련 변경 사항이 있으면 쿼리를 다시 실행하고 최신 데이터를 반환합니다. 안드로이드는 이것을 수행하는 방법을 설명하는 좋은 write up을 가지고있다.

+0

Jay Soyer에게 감사드립니다. 내 목표는 1) Retrofit을 통해 외부 API 끝점에서 데이터 가져 오기 (및 GSON, OkHttp 사용) 2) 데이터를 가져 오면 대개 BaseAdapter의 하위 클래스에서 메모리에 저장됩니다. 3) ListView를 새로 고칩니다. BaseAdapter 서브 클래스가 링크됩니다. 또한, 세션 전체에서 지속성을 위해 데이터베이스 내에 데이터를 (2)에 저장할 수도 있습니다. 그러나, 왜 처음에는 데이터베이스에 연결된 어댑터에 데이터를 저장하지 않는지 생각하고있었습니다. CursorAdapter가이를 달성 할 수 있습니까? – dowjones123

+0

예. 그것이 정확히 그들 요점입니다. ListView를 DB에 연결하기. –