2012-04-21 10 views
1

私はしばらく試していましたが、URIマッチングの問題を解決できないようです。どんな助けでも大歓迎です。次のコードでcontructedされ渡されるURIコンテンツプロバイダの一致が正しく一致していません

private static final String AUTHORITY = "edu.uprm.civil.db"; 

public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); 

private static UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
static { 
    sURIMatcher.addURI(AUTHORITY, "/get-table" + "/*", TABLE_REQUEST_CODE); 
    sURIMatcher.addURI(AUTHORITY, "/get-row" + "/*", ROW_REQUEST_CODE); 
    sURIMatcher.addURI(AUTHORITY, "/search" + "/*", TABLE_SEARCH_REQUEST_CODE); 
} 

とURI:

Uri.Builder uriBuilder = DBContentProvider.CONTENT_URI.buildUpon(); 

    switch(id){ 
    case LOADER_GET_TABLE_ID : 
     uriBuilder.appendPath("get-table"); 
     uriBuilder.appendPath("q"); 
     uriBuilder.appendQueryParameter("table", formID); 
     return new CursorLoader(context, uriBuilder.build(), null, null, null, null); 
    case ... 

が、私はこの方法をデバッグし、私はここで

は私のコンテンツのURIの宣言とURIマッチャーですURIに含まれるURIを見ることはできますが、一致することはありません。

content://edu.uprm.civil.db/get-table/q?table=150 

あなたが任意のより多くの情報が必要な場合は

答えて

0

があなたのUriMatcherのルールを変更し、開始を削除...それは私にとって頭痛の種となっています、私に教えてください:URIが来てどのように

sURIMatcher.addURI(AUTHORITY, "get-table" + "/*", TABLE_REQUEST_CODE); 
sURIMatcher.addURI(AUTHORITY, "get-row" + "/*", ROW_REQUEST_CODE); 
sURIMatcher.addURI(AUTHORITY, "search" + "/*", TABLE_SEARCH_REQUEST_CODE); 
+0

ありがとう、これらの修正は完全に機能しました。 – DanyBoricua