UriMatcher Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido.
[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
- Herencia
- Atributos
Comentarios
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido.
Para usar esta clase, cree un árbol de UriMatcher
objetos. Por ejemplo:
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 partir del nivel android.os.Build.VERSION_CODES#JELLY_BEAN_MR2
de API, las rutas de acceso pueden comenzar con una barra diagonal inicial. Por ejemplo:
sURIMatcher.addURI("contacts", "/people", PEOPLE);
A continuación, cuando necesite coincidir con un URI, llame a #match
y proporcione la dirección URL que se le ha proporcionado. Puede usar el resultado para compilar una consulta, devolver un tipo, insertar o eliminar una fila, o lo que necesite, sin duplicar toda la lógica if-else que de otro modo necesitaría. Por ejemplo:
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;
}
}
en lugar de:
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;
}
Documentación de Java para android.content.UriMatcher
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.
Constructores
UriMatcher(Int32) |
Crea el nodo raíz del árbol de URI. |
UriMatcher(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Campos
NoMatch |
Propiedades
Class |
Devuelve la clase en tiempo de ejecución de este |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
JniIdentityHashCode |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
JniPeerMembers |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. |
PeerReference |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
AddURI(String, String, Int32) |
Agregue un URI para que coincida y el código que se va a devolver cuando este URI coincide. |
Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
Dispose() |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
Dispose(Boolean) |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
JavaFinalize() |
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
Match(Uri) |
Intente buscar coincidencias con la ruta de acceso de una dirección URL. |
Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
ToArray<T>() |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<>< (Heredado de Object) |
Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
IJavaPeerable.Disposed() |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
IJavaPeerable.Finalized() |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
IJavaPeerable.JniManagedPeerState |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. (Heredado de Object) |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. |
GetJniTypeName(IJavaPeerable) |
Clase de utilidad para ayudar a buscar URI coincidentes en proveedores de contenido. |