본문 바로가기
개발 log (개발)/mobile

'커스텀갤러리' 구현을 위한 컨텐트 프로바이더(ContentProvider)

by abbear25 2016. 8. 20.

정의

다른 App에 데이터를 공급하는 역할을 하는 컴포넌트

데이터 공급 추상화, 데이터와 어플 계층을 분리하는 역할


이론

컨텐트 제공자 접근 - getContentResolver(), CRUD기능 제공 


쿼리 작성 - getContentResolver().query(

Uri, //콘텐츠 제공자의 테이블 이름

Projection, //반환되는 레코드에 포함되는 필드이름

SelectionClause, //행을 선택하는 조건

SelectionArgs,

SortOrder //레코드 집합에서 행이 나타는 순서

)

Uri - MediaStore.Images.Media.INTERNAL_CONTENT_URI 내부 저장매체 접근 

 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 외부 저장매체 접근


Cursor

실제 Table의 한 행을 참조하는 것 처럼 사용


Cursor 위치 변경

moveToFirst() - 제일 첫번째 행으로 이동

moveToNext() - 다음 행으로 이동

moveToPrevious() - 이전 행으로 이동

moveToPosition(position) - position 행으로 이동

moveToLast() - 마지막 행으로 이동


Cursor 데이터 가져오기

getInt(0), getString(2) 등 - 실제 데이터형 값 가져오기 (Column 번호)

getColumnIndex(STring columnName) - 해당 필드 이름 얻어오기

getPosition() - Cursor가 가리키는 행 position 값 얻어오기

getColumnName(int columnIndex) - 해당 필드 이름 얻어오기

getCount() - 행의 갯수를 얻어옴

getColumnNames() - 필드명을 순서대로 배열로 얻어옴

get ColumnCount() - 필드 갯수를 얻어옴 

getColumnIndexOrThrow() - 특정 필드의 인덱스 값 반환, 또는 예외 발생


 Column                      0                                                         2

 RecNo

_id 

name 

email 

 

 

 

1

 

 

 

'_id컬럼' - 행과 행을 구별하는 주요키의 역할



 

반응형