UriMatcher Classe

Definizione

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

[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
Ereditarietà
UriMatcher
Attributi

Commenti

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

Per usare questa classe, compilare un albero di UriMatcher oggetti. Ad esempio:

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);
                }

A partire dal livello android.os.Build.VERSION_CODES#JELLY_BEAN_MR2API , i percorsi possono iniziare con una barra iniziale. Ad esempio:

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

Quando è quindi necessario corrispondere a un URI, chiamare #match, specificando l'URL specificato. È possibile usare il risultato per compilare una query, restituire un tipo, inserire o eliminare una riga o qualsiasi cosa necessaria, senza duplicare tutta la logica if-else necessaria in caso contrario. Ad esempio:

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;
                    }
                }

invece di:

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;
                }

Documentazione Java per android.content.UriMatcher.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Costruttori

UriMatcher(Int32)

Crea il nodo radice dell'albero URI.

UriMatcher(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Campi

NoMatch

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
JniPeerMembers

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

PeerReference

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

AddURI(String, String, Int32)

Aggiungere un URI per la corrispondenza e il codice da restituire quando questo URI è corrispondente.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
Dispose(Boolean)

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto.

(Ereditato da Object)
Match(Uri)

Provare a corrispondere al percorso in un URL.

Notify()

Riattiva un singolo thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
ToArray<T>()

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
Wait()

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.<

(Ereditato da Object)
Wait(Int64)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
IJavaPeerable.Finalized()

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione dei tipi controllati dal runtime Android.

JavaCast<TResult>(IJavaObject)

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

GetJniTypeName(IJavaPeerable)

Classe di utilità per aiutare gli URI corrispondenti nei provider di contenuti.

Si applica a