cursorloader 예제

업데이트 및 삽입 작업과 달리 SQLiteDatabase에는 행을 삭제하는 단일 메서드만 있습니다. delete() 메서드의 서명은 update() 메서드의 서명과 유사합니다. 행을 삭제하는 테이블의 이름, whereClause 및 whereArgs의 문자열 배열을 나타내는 세 개의 매개 변수가 필요합니다. whereClause 및 wheredelete() 메서드에 대한 처리는 update() 메서드에 대한 whereClause 처리와 일치합니다. whereClause 매개변수에는 자리 표시로 물음표가 포함되고 whereArgs 매개변수에는 자리 표시자에 대한 값이 포함됩니다. 목록 5.5는 delete() 메서드 예제를 보여 주며 있습니다. 아래에 사용된 몇 가지 용어를 정의하여 이 예제가 어떻게 잘 맞는지 살펴보겠습니다: SQLiteDatabase.insertWithConflict(문자열 테이블, 문자열 nullColumnHack, ContentValues 값, int conflictAlgorithm)는 다른 두 삽입과 약간 다르게 작동합니다. 방법. 삽입 작업 중에 충돌 해결을 지원합니다.

삽입 충돌은 고유 제약 조건이 적용된 열에서 중복을 생성하거나 기본 키에 대한 데이터를 복제하는 테이블에 행을 삽입하려고 할 때 발생합니다. 예를 들어 표 5.1로 표시되는 데이터베이스 테이블을 생각해 보십시오. 목록 5.3은 SQLiteDatabase.update() 호출의 예를 보여줍니다. 이 튜토리얼은 안드로이드커서로더를 사용하는 방법을 가르칠 것입니다. 로더의 개념은 안드로이드 3.0 (API 레벨 11)에 도입되었다. 이 예제에서는 CursorLoader를 사용하여 ContentProvider에서 직접 데이터를 로드한 다음 결과 데이터 집합을 SimpleCursorAdapter에 직접 연결합니다. 쿼리를 초기화하려면 LoaderManager.initLoader()를 호출합니다. 이렇게 하면 백그라운드 프레임워크가 초기화됩니다. 사용자가 쿼리에 사용되는 데이터를 입력한 후 이 작업을 수행하거나 사용자 데이터가 필요하지 않은 경우 onCreate() 또는 onCreateView()에서 수행할 수 있습니다.

예를 들어, 이것은 CursorLoader의 지원 라이브러리 버전을 사용하는 FragmentActivity를 정의하는 방법입니다. FragmentActivity를 확장하면 커서로더와 프래그먼트: 참고: 다음 접근 방식이 더 이상 사용되지 않음으로 간주됩니다. 콘텐츠 공급자와 페이징 라이브러리 가이드를 사용하는 것이 좋습니다. 자세한 내용은 이 링크 및 소스 코드 예제를 참조하십시오. String nullColumnHack: ContentValues 인수에 데이터가 없는 경우 null로 설정되는 열을 지정합니다. 일반적인 데이터베이스 사용 사례에서 데이터베이스에 데이터를 삽입하는 것은 데이터베이스를 만드는 다음 단계입니다. 이는 데이터베이스가 데이터를 포함하는 후에만 유용하기 때문에 의미가 있습니다. 데이터베이스를 만드는 단계는 이전 장에서 다루었기 때문에 이 설명은 데이터베이스에 데이터를 삽입하는 것으로 시작합니다. 보다 복잡한 사용자 지정 레이아웃을 사용하려면 위에 표시된 SimpleCursorAdapter를 대체할 사용자 지정 CursorAdapter를 구성해야 합니다. 백그라운드 프레임워크에 개체가 있으면 백그라운드에서 쿼리가 시작됩니다.

쿼리가 완료되면 백그라운드 프레임워크는 다음 단원에서 설명하는 LoadFinished()를 호출합니다. 다양한 콘텐츠 제공업체가 노출되는 데이터를 찾을 수 있는 표준 장소는 아직 없습니다. 다음은 몇 가지 일반적인 계약에 대해 정의된 알려진 계약 목록입니다. 긴 삽입(문자열 테이블, 문자열 nullColumnHack, 콘텐츠값 값) SQLiteDatabase.CONFLICT_ROLLBACK: 현재 삽입 문을 중단합니다. 삽입이 트랜잭션의 일부인 경우 이전 문도 실행 취소되고 SQLiteDatabase.CONFLICT_FAIL 값은 insertWithOnConflict() 메서드에 의해 반환됩니다. . 이제 다음 간단한 단계를 따르십시오 : 여기에서 Android 장치에 저장된 모든 연락처 목록을 만듭니다. SQLite데이터베이스.CONFLICT_FAIL: SQLiteDatabase.CONFLICT_ABORT와 유사합니다.

Posted in Uncategorized