30

カレンダーの予定を操作する際に使用した各用語について、誰か説明してもらえますか?

  1. Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
    int 値を 0 に初期化できるため、ここでの uri とは何ですか。実際にはコンテンツとは何ですか?
    デフォルト値でuriを初期化することは可能ですか?

  2. Uri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
    これらのウリは何を意味しますか? event_uriとはどう違いreminder_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)
    このウリは何?最初の 2 つの uris との違いはevent_uri?reminder_uri

    またvalues.put("event_id", Long.parseLong(event.getLastPathSegment())); cr.insert(remindar_uri, values);

    それは何をするためのものか?

4

2 に答える 2

54

質問 1 と 2 に関して、AUriは重要なものを指すアドレスです。ContentProvidersの場合、Uri使用するテーブルを決定するために通常使用されます。したがってevent_uri、events テーブルをreminder_uriポイントし、reminders テーブルをポイントします。uris の「デフォルト値」は実際にはありません。

質問 3 に関しては、これContentValuesは基本的に一連のキーと値のペアであり、キーはテーブルの列を表し、値はその列に挿入される値です。の場合values.put("calendar_id", 1);、列は「calendar_id」で、その列に挿入される値は 1 です。

質問 4 に関してContentResolverは、Android がUris をContentProviders に解決するために使用するものです。誰でも を作成でき、ContentProviderAndroidContentProviderにはカレンダー、連絡先などの があります。insert()a のメソッドは、挿入された行の をContentResolver返します。Uriしたがって、質問 1 と 2 では、これらUriの はテーブルを指していましたが、Uriは階層的であるため、特定の行に解決できます。例えば:

content://com.android.calendar/eventsイベントテーブルを指しますが、

content://com.android.calendar/events/1ID 1 のイベント テーブルの行を指します。

これは通常の動作ですが、提供ContentProvider側で URI をカスタマイズして別の方法で解決できることに注意してください。

ContentProvider のドキュメント、特にContent URIのセクションを読むことを強くお勧めします。


以前に推奨されたドキュメントから:

前のコード行では、「words」テーブルの完全な URI は次のとおりです。

content://user_dictionary/words

ここで、user_dictionarystring はプロバイダーの機関であり、wordsstring はテーブルのパスです。文字列content://(スキーム) は常に存在し、これをコンテンツ URI として識別します。

于 2011-09-20T23:06:28.117 に答える
0

コンテンツ値:

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)
    ....
    ....
    ....


}
于 2012-09-20T09:38:30.137 に答える