2011-09-15 5 views
29

누구든지 캘린더 일정 작업에 사용했던 각 용어에 대해 설명 할 수 있습니까? 우리는 0으로 int 값을 초기화 할 수있는 사실, 내용이 무엇인지uri, contentValues ​​무엇입니까

여기 URI 무엇
  1. Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
    ? 기본값이 설정된 uri를 초기화하는 것이 가능합니까?
    ?

  2. Uri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
    이 URI는 무엇을 의미합니까? event_urireminder_uri의 차이점은 무엇입니까?

  3. ContentValues values = new ContentValues();
    values.put("calendar_id", 1);
    values.put("title", str);
    values.put("description", m_strDescription);

    첫 번째 작업은 무엇을 수행합니까? values.put("calendar_id", 1);

  4. ContentResolver cr = getContentResolver();
    컨텐츠 해결의 사용은 무엇입니까? 때로는 다음과 같이 작성합니다 :

    Uri u = cr.insert(event_uri, values)
    이 URI는 무엇입니까? 어떻게 처음 두 URI의 차이점은 무엇입니까는 event_uri 다시 values.put("event_id", Long.parseLong(event.getLastPathSegment())); cr.insert(remindar_uri, values);

    reminder_uri

    는 무엇을 하는가를 예컨대?

답변

53

질문 1과 2에 대해 A Uri은 중요한 의미를 나타내는 주소입니다. ContentProvider의 경우에는 보통 Uri을 사용하여 사용할 테이블을 결정합니다. 따라서 event_uri은 이벤트 테이블을 가리키고 reminder_uri은 미리 알림 테이블을 가리 킵니다. 실제로는 "기본값"이 없습니다.

질문 3에 대해 ContentValues은 본질적으로 키 - 값 쌍의 집합입니다. 여기서 키는 테이블의 열을 나타내고 값은 해당 열에 삽입 할 값입니다. 그래서 values.put("calendar_id", 1);의 경우, 열이 "CALENDAR_ID"이고 값이 그 컬럼에 삽입되는 ContentResolver는 안드로이드가 사용하는 ContentProvider들에 Uri의 해결을 위해 무엇을, 질문 4에 대해서는 1

입니다. 누구나 ContentProvider을 만들 수 있으며 Android는 ContentProvider s입니다. insert() 메서드는 ContentResolver에 삽입 된 행의 Uri을 반환합니다. 따라서 질문 1과 2에서 Uri은 테이블을 가리키고 있지만 Uri은 계층 적이므로 특정 행을 확인할 수 있습니다. 예를 들어 : ID 1

와 이벤트 테이블의 행으로 이벤트 테이블에

content://com.android.calendar/events 점,하지만

content://com.android.calendar/events/1 점은이 일반적인 행동임을 명심하지만, 제공 ContentProvider은 해결할 uris를 다르게 사용자 정의 할 수 있습니다.

ContentProvider docs, 특히 Content URIs 섹션을 읽는 것이 좋습니다. 이전에 추천 문서에서


: 코드의 이전 라인에서

는 전체 URI는 "단어"테이블입니다 :

content://user_dictionary/words

user_dictionary 문자열을 은 공급자의 권한이고 words 문자열은 테이블의 경로입니다. 문자열 content:// (스키마)은 항상 존재하며 콘텐츠 콘텐츠 URI로이 을 식별합니다.

0

ContentValues ​​:

public final class 
ContentValues 
extends Object 
implements Parcelable have public methods 
like: String getAsString(String KEY) , void put(Sring KEY, String value) 
e.g. 

public void createEntry(String name, String number){ 
    ContentValues cval = new ContentValues(); 
    cval.put(KEY_NAME, name); // KEY_NAME is key just like parameter in put(String key) 
    .... 
    .... 
    .... 


}