안드로이드 개발 정보
(글 수 1,064)
안녕하세요.
뭐 아시는 분들은 다 알만한 것이지만, 저는 이거 찾는데 몇시가 걸렸답니다.
Content Provider 를 데이타를 요청할 때, URI를 이용하여 요청하는데요.
예들 들면,
content://com.bolero.provider/address
이런식으로 요청을 하게 됩니다.
가끔 여기에 글보면, URI의 마지막 단어가 테이블 명이라고 하시는 분들도 계시던데요.
위 예 에서는 address 가 되겠지요.
이거 테이블 명 아니구요. 그냥 구분자 입니다.
내부에서 테이블이 뭐 그런것들으 찾기 위한 키워드 쯤으로 생각하시면 됩니다.
아무튼 여기저기 예제를 찾다 보면,
ID 값을 추가하는 것은 쉽게 찾을 수가 있습니다.
Uri CONTENT_URI = Uri.parse("content://com.bolero.provider/address");
위와 같은 Content URI 가 있을 때, 여기 ID 값을 추가하는 것은
Uri contentUri = ContentUris.withAppendedId(CONTENT_URI, 1);
이런식으로 하시면,
content://com.bolero.provider/address/1
이런 URI를 만드실 수 있습니다.
그냥 유추해 보면, ID를 저렇게 붙였으니까 , 파라미터도 ContentUris 이 클래스 보면 뭐 메소드가 있겠지 하고 생각할 수 있지요.
http://developer.android.com/reference/android/content/ContentUris.html
그런데, 없더군요 ㅡ.ㅡ
그럼, Uri 클래스에 있나?
http://developer.android.com/reference/android/net/Uri.html
그런데, 희한한 것이 Uri 클래스 에도 마땅한 것이 없더라구요.
가져오는 getQueryParameter 는 있는데, set 이나 add 관련 메소드가 없더라구요ㅡ.ㅡ
음, 도대체 추가는 어디서 하는 걸까 한참 찾았답니다.
파라미터는 또 전혀 다른 클래스 해서 하더군요.
Uri.Builder uribuilder = CONTENT_URI.buildUpon();
uribuilder.appendQueryParameter("limit", "10,5");
Uri newUri = uribuilder.build();
이런 식으로 Uri.Builder 라는 클래스를 이용해야 하더군요.
위와 코드를 실행하면,
content://com.bolero.provider/address?limit=10%2C5
이렇게 바뀐 답니다.
%2C 는 , 에 해당하구요.
이런식으로 Uri에 원하는 파라미터를 마음대로 추가할 수 있답니다.
수고하세요^^
뭐 아시는 분들은 다 알만한 것이지만, 저는 이거 찾는데 몇시가 걸렸답니다.
Content Provider 를 데이타를 요청할 때, URI를 이용하여 요청하는데요.
예들 들면,
content://com.bolero.provider/address
이런식으로 요청을 하게 됩니다.
가끔 여기에 글보면, URI의 마지막 단어가 테이블 명이라고 하시는 분들도 계시던데요.
위 예 에서는 address 가 되겠지요.
이거 테이블 명 아니구요. 그냥 구분자 입니다.
내부에서 테이블이 뭐 그런것들으 찾기 위한 키워드 쯤으로 생각하시면 됩니다.
아무튼 여기저기 예제를 찾다 보면,
ID 값을 추가하는 것은 쉽게 찾을 수가 있습니다.
Uri CONTENT_URI = Uri.parse("content://com.bolero.provider/address");
위와 같은 Content URI 가 있을 때, 여기 ID 값을 추가하는 것은
Uri contentUri = ContentUris.withAppendedId(CONTENT_URI, 1);
이런식으로 하시면,
content://com.bolero.provider/address/1
이런 URI를 만드실 수 있습니다.
그냥 유추해 보면, ID를 저렇게 붙였으니까 , 파라미터도 ContentUris 이 클래스 보면 뭐 메소드가 있겠지 하고 생각할 수 있지요.
http://developer.android.com/reference/android/content/ContentUris.html
그런데, 없더군요 ㅡ.ㅡ
그럼, Uri 클래스에 있나?
http://developer.android.com/reference/android/net/Uri.html
그런데, 희한한 것이 Uri 클래스 에도 마땅한 것이 없더라구요.
가져오는 getQueryParameter 는 있는데, set 이나 add 관련 메소드가 없더라구요ㅡ.ㅡ
음, 도대체 추가는 어디서 하는 걸까 한참 찾았답니다.
파라미터는 또 전혀 다른 클래스 해서 하더군요.
Uri.Builder uribuilder = CONTENT_URI.buildUpon();
uribuilder.appendQueryParameter("limit", "10,5");
Uri newUri = uribuilder.build();
이런 식으로 Uri.Builder 라는 클래스를 이용해야 하더군요.
위와 코드를 실행하면,
content://com.bolero.provider/address?limit=10%2C5
이렇게 바뀐 답니다.
%2C 는 , 에 해당하구요.
이런식으로 Uri에 원하는 파라미터를 마음대로 추가할 수 있답니다.
수고하세요^^