UriMatcher クラス

定義

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

[Android.Runtime.Register("android/content/UriMatcher", DoNotGenerateAcw=true)]
public class UriMatcher : Java.Lang.Object
[<Android.Runtime.Register("android/content/UriMatcher", DoNotGenerateAcw=true)>]
type UriMatcher = class
    inherit Object
継承
UriMatcher
属性

注釈

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

このクラスを使用するには、 UriMatcher オブジェクトのツリーを構築します。 例えば次が挙げられます。

private static final int PEOPLE = 1;
                private static final int PEOPLE_ID = 2;
                private static final int PEOPLE_PHONES = 3;
                private static final int PEOPLE_PHONES_ID = 4;
                private static final int PEOPLE_CONTACTMETHODS = 7;
                private static final int PEOPLE_CONTACTMETHODS_ID = 8;

                private static final int DELETED_PEOPLE = 20;

                private static final int PHONES = 9;
                private static final int PHONES_ID = 10;
                private static final int PHONES_FILTER = 14;

                private static final int CONTACTMETHODS = 18;
                private static final int CONTACTMETHODS_ID = 19;

                private static final int CALLS = 11;
                private static final int CALLS_ID = 12;
                private static final int CALLS_FILTER = 15;

                private static final UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH);

                static
                {
                    sURIMatcher.addURI("contacts", "people", PEOPLE);
                    sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
                    sURIMatcher.addURI("contacts", "people/#/phones", PEOPLE_PHONES);
                    sURIMatcher.addURI("contacts", "people/#/phones/#", PEOPLE_PHONES_ID);
                    sURIMatcher.addURI("contacts", "people/#/contact_methods", PEOPLE_CONTACTMETHODS);
                    sURIMatcher.addURI("contacts", "people/#/contact_methods/#", PEOPLE_CONTACTMETHODS_ID);
                    sURIMatcher.addURI("contacts", "deleted_people", DELETED_PEOPLE);
                    sURIMatcher.addURI("contacts", "phones", PHONES);
                    sURIMatcher.addURI("contacts", "phones/filter/*", PHONES_FILTER);
                    sURIMatcher.addURI("contacts", "phones/#", PHONES_ID);
                    sURIMatcher.addURI("contacts", "contact_methods", CONTACTMETHODS);
                    sURIMatcher.addURI("contacts", "contact_methods/#", CONTACTMETHODS_ID);
                    sURIMatcher.addURI("call_log", "calls", CALLS);
                    sURIMatcher.addURI("call_log", "calls/filter/*", CALLS_FILTER);
                    sURIMatcher.addURI("call_log", "calls/#", CALLS_ID);
                }

API レベルの android.os.Build.VERSION_CODES#JELLY_BEAN_MR2から、パスは先頭にスラッシュで始めることができます。 例えば次が挙げられます。

sURIMatcher.addURI("contacts", "/people", PEOPLE);

URI と照合する必要がある場合は、 #matchを呼び出し、指定した URL を指定します。 この結果を使用すると、必要な if-else ロジックをすべて複製することなく、クエリの作成、型の返し、行の挿入または削除、または必要な処理を行うことができます。 例えば次が挙げられます。

public String getType(Uri url)
                {
                    int match = sURIMatcher.match(url);
                    switch (match)
                    {
                        case PEOPLE:
                            return "vnd.android.cursor.dir/person";
                        case PEOPLE_ID:
                            return "vnd.android.cursor.item/person";
            ... snip ...
                            return "vnd.android.cursor.dir/snail-mail";
                        case PEOPLE_ADDRESS_ID:
                            return "vnd.android.cursor.item/snail-mail";
                        default:
                            return null;
                    }
                }

代わりに:

public String getType(Uri url)
                {
                    List<String> pathSegments = url.getPathSegments();
                    if (pathSegments.size() >= 2) {
                        if ("people".equals(pathSegments.get(1))) {
                            if (pathSegments.size() == 2) {
                                return "vnd.android.cursor.dir/person";
                            } else if (pathSegments.size() == 3) {
                                return "vnd.android.cursor.item/person";
            ... snip ...
                                return "vnd.android.cursor.dir/snail-mail";
                            } else if (pathSegments.size() == 3) {
                                return "vnd.android.cursor.item/snail-mail";
                            }
                        }
                    }
                    return null;
                }

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
UriMatcher(Int32)

URI ツリーのルート ノードを作成します。

UriMatcher(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

フィールド

名前 説明
NoMatch

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
JniPeerMembers

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

PeerReference

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
AddURI(String, String, Int32)

一致する URI と、この URI が一致したときに返されるコードを追加します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
Dispose(Boolean)

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Match(Uri)

URL 内のパスとの照合を試みます。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
ToArray<T>()

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
IJavaPeerable.Finalized()

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

コンテンツ プロバイダーでの URI の照合に役立つユーティリティ クラス。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象