●Class 개요
이 인터페이스는 데이터베이스에 대한 쿼리에서 반환되는 결과 집합에 대한 임의
액세스를 제공합니다.
커서의 구현에 있어서 동기 보증은 필수는 아닙니다.
여러 스레드에서 커서를 사용하는 쪽이 동기화를 보장해야 합니다.
public abstract void close ()
Cursor의 클로즈는, 모든 자원을 해방해 이것을 완전하게 무효로 합니다.
deactivate()→requery()와 달리 Cursor가 다시 활성화(activate)가 되지는 않습니다.
public abstract void copyStringToBuffer (int columnIndex, CharArrayBuffer buffer)
인수의 버퍼에 참조열의 내용을 텍스트로 포함합니다.
버퍼 사이즈가 불충분하면, 새로운 char 버퍼가 할당됩니다.
참조 열이 null의 경우는 버퍼를 그대로 돌려줍니다.
●public abstract void deactivate ()
커서를 무효로 합니다. requery()가 호출되기 전까지는 모든 작업이 실패합니다.
비활성 (deactivate 상태) 커서는 활성 커서보다 소비하는 리소스
양이 적습니다.
● public abstract int getColumnCount ()
참조열의 칼럼 총수를 취득합니다.
public abstract int getColumnIndex (String columnName)
지정한 열명이 몇 열째에 있는지를, 0으로부터 시작되는 인덱스를 돌려줍니다.
열이 없으면 -1을 반환합니다.
만약, 열이 존재할 것을 기대하는 경우는 -1인가 어떤가 가 아니고, getColumnIndexOrThrow()
를 사용하는 편이 보다 명확한 코드가 될 것입니다.
public abstract int getColumnIndexOrThrow (String columnName)
지정된 열명이 몇 열째에 있는지를, 0으로부터 시작되는 인덱스를 돌려줍니다.
열이 존재하지 않는 경우는 IllegalArgumentException를 Exception합니다.
만약, 열이 존재할지 하지 않는지 불명확한 경우는 getColumnIndex()를 사용해 반환값-1을
판정하는 편이 효율적일 것입니다.
public abstract String getColumnName (int columnIndex)
주어진 인덱스에 해당하는 열명을 돌려줍니다.
인덱스는 0 기반이어야 합니다.
●public abstract String [] getColumnNames ()
결과 세트에 있는 전열명을 String 배열로 돌려줍니다.
public abstract int getCount ()
Cursor 내의 행수를 돌려줍니다.
●public abstract byte [] getBlob (int columnIndex)
취득 요구가 있던 칼럼의 데이터를 바이트 배열로서 돌려줍니다.
대상 칼럼이 null이거나, Blob 타입이 아닌 경우의 동작은 구현 의존입니다.
public abstract double getDouble (int columnIndex)
취득 요구가 있던 칼럼의 데이터를 double 로서 돌려줍니다.
대상 열이 null이거나, double이 아니거나, double로 표현 불가능한 경우의 동작
은 구현 의존입니다.
public abstract float getFloat (int columnIndex)
취득 요구가 있던 컬럼의 데이터를 float 로서 돌려줍니다.
대상 칼럼이 null이거나, float가 아닌, 또는 float로 표현 불가능한 경우의 동작은
구현 의존입니다.
public abstract int getInt (int columnIndex)
취득 요구가 있던 칼럼의 데이터를 int 로서 돌려줍니다.
대상 칼럼이 null이거나, int가 아니거나, 유효 범위 외인 경우의 동작은 구현 의존
입니다.
public abstract long getLong (int columnIndex)
취득 요구가 있던 칼럼의 데이터를 long로서 돌려줍니다.
대상 열이 null이거나 long이 아니거나 유효 범위를 벗어난 경우의 동작은 구현에 따라
다릅니다.
public abstract short getShort (int columnIndex)
취득 요구가 있던 컬럼의 데이터를 short로서 돌려줍니다.
대상 열이 null이거나, short가 아니거나, 유효 범위 외인 경우의 동작은 구현 의존
입니다.
public abstract String getString (int columnIndex)
취득 요구가 있던 칼럼의 데이터를 String 로서 돌려줍니다.
대상 칼럼이 null이거나, String가 아닌 경우의 동작은 구현 의존입니다.
●public abstract Bundle getExtras ()
Extra치인 Bundle를 돌려줍니다.
이것은 사용자에게 메타 정보를 제공하는 옵션 기능입니다.
예를 들어 커서 데이터를 가져와 네트워크 요청의 진행 상황을 표시하는
경우가 있습니다.
반환 값이 없으면 커서 정의 값 또는 Bundle.EMPTY를 반환합니다.
null을 반환하지 않습니다.
public abstract int getPosition ()
행 세트상의 Cursor 위치를 돌려줍니다 (Cursor 위치는 0으로부터 시작된다).
행 세트상의 Cursor 초기 위치는 -1로, 선두행보다 1 개 앞에 있습니다.
moveToNext()등에 의해 행말의 커서가 돌려주어진 후의 position은, 마지막의 행 세트를
지나치게 지나치게 해, count()와 같은 값이 됩니다.
public abstract int getType (int columnIndex)
주어진 인덱스에 해당하는 열의 형태를 돌려줍니다.
돌려주어지는 형태는 아래와 같습니다.
- FIELD_TYPE_NULL
- FIELD_TYPE_INTEGER
- FIELD_TYPE_FLOAT
- FIELD_TYPE_STRING
- FIELD_TYPE_BLOB
●public abstract boolean getWantsAllOnMoveCalls ()
onMove()가 프로세스 간에서만 불려 가는 경우는 true를 돌려줍니다.
모든 커서의 이동이 onMove()를 호출하여 발생하는지 여부를 반환합니다.
public abstract boolean isAfterLast ()
Cursor의 위치가 말미행보다 뒤를 가리키고 있는지 어떤지를 돌려줍니다.
public abstract boolean isBeforeFirst ()
Cursor의 위치가 선두행보다 전을 가리키고 있는지 어떤지를 돌려줍니다.
public abstract boolean isClosed ()
Cursor가 닫혀 있는지 어떤지를 돌려줍니다.
public abstract boolean isFirst ()
Cursor의 위치가 선두행을 가리키고 있는지 어떤지를 돌려줍니다.
public abstract boolean isLast ()
Cursor의 위치가 말미행을 가리키고 있는지 어떤지를 돌려줍니다.
public abstract boolean isNull (int columnIndex)
지정된 열의 값이 null인지 어떤지를 돌려줍니다.
●public abstract boolean move (int offset)
Cursor 위치를 offset 분, 전방 혹은 후방으로 이동시킵니다.
offset은 현재 커서 위치에서 본 상대적인 값을 나타냅니다.
1 이상의 오프셋은 전방, -1 이하의 오프셋은 후방으로의 이동을 의미합니다.
오프셋이 커서 이동 범위를 경계 밖으로 이동하는 경우 전방 또는 후방으로의 이동 여부
에 따라 커서 위치가 -1 또는 count () 값으로 설정됩니다.
요구된 offset가 이동 가능한 범위 내인 경우, 이 메서드는 true를 돌려주어, 그렇지
않은 경우는 false를 돌려줍니다.
예를 들어, 커서의 position이 2의 상태로 move(-5)로 했을 경우는 false를 돌려주고, position은 -1
로 갱신됩니다.
●public abstract boolean moveToFirst ()
Cursor를 선두행으로 이동시킵니다.
●public abstract boolean moveToLast ()
Cursor를 말미행으로 이동시킵니다.
● public abstract boolean moveToNext ()
Cursor를 다음 행으로 이동시킵니다.
Cursor가 이미 말미행을 지나고 있는 상태(isAfterLast)로 호출하면 false를 돌려줍니다.
●public abstract boolean moveToPrevious ()
Cursor를 이전의 행으로 이동시킵니다.
Cursor가 선두행보다 전(isBeforeFirst)의 상태로 호출하면 false를 돌려줍니다.
public abstract boolean moveToPosition (int position)
Cursor 위치를 position이 나타내는 절대 위치로 이동시킵니다.
유효 범위는 -1 <=position <=count()입니다.
● public abstract void registerContentObserver (ContentObserver observer)
Cursor를 감시하기 위한 오브 서버를 등록합니다.
일반적으로 데이터 세트는 requery가 호출될 때까지 변경되지 않습니다.
● public abstract void registerDataSetObserver (DataSetObserver observer)
Cursor의 데이터 세트를 감시하기위한 오브 서버를 등록합니다.
requery(), deactivate(), close()가 호출되면 이 데이터세트가 변경됩니다.
● public abstract void unregisterContentObserver (ContentObserver observer)
registerContentObserver로 등록된 오브 서버를 해제합니다.
참고: registerContentObserver(DataSetObserver)
●public abstract void unregisterDataSetObserver (DataSetObserver observer)
registerDataSetObserver에 등록된 서버를 해제합니다.
참고: registerDataSetObserver(DataSetObserver)
●public abstract void setNotificationUri (ContentResolver cr, Uri uri)
변경을 감시하는 콘텐츠 URI를 등록합니다.
URI는 특정 데이터 행("content://my_provider_type/23")과 일반적인 형식의 URI를 지정할
수 있습니다.
참고: registerContentObserver(ContentObserver)
●public abstract boolean requery()
이 메서드는 비추천입니다.
deactive 상태의 Cursor 등, 쿼리를 재실행하고 싶을 때에 사용할 수 있는 메서드입니다만,
재실행에는 다소 시간이 걸릴 가능성이 있기 때문에, UI thread로 이것을 호출하면,
ANR을 일으킬 가능성이 있습니다.
●public abstract Bundle respond (Bundle extras)
유저가 커서와 통신하기 위해서 준비된 옵션 기능입니다.
Bundle의 구조는 커서 측면에서 정의됩니다.
사용 사례로는 오류를 보고한 후 네트워크 요청을 다시 시도해야
한다고 Cursor에 알리고 싶은 경우가 있습니다.
인수/반환 값은 커서 정의 값 또는 Bundle.EMPTY여야 하며 null은 허용되지 않습니다.
Cursor | Android Developers
developer.android.com
'개발 > 안드로이드 어플' 카테고리의 다른 글
SVN 간단 조작 SubVersion TortoiseSVN (2) | 2023.01.17 |
---|---|
View 표시/숨기기 전환 방법 (0) | 2023.01.10 |
[Android] LayoutInflater 정보 (생성, 방법 비교, 구현) (1) | 2022.12.23 |
Android 앱 개발에서 ProgressDialog를 추가하는 방법 (0) | 2022.12.22 |
DialogInterface.OnClickListener 인터페이스 (1) | 2022.12.21 |
댓글