免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
android – UriMatcher與uri不匹配

我正在嘗試對搜索對話框進(jìn)行自定義建議.我正在使用urimatcher來匹配uri.但它不起作用.我總是得到異?!?a >java.lang.IllegalArgumentException:Unknown Uri:content://com.simple.search.SuggestionProvider/search_suggest_query/?limit = 50”.請向我解釋一下.我該怎么做才能解決這個問題?

private static final UriMatcher sURIMatcher = makeUriMatcher();public Cursor query(Uri uri, String[] projection, String selection,        String[] selectionArgs, String sortOrder) {    // Use UriMatcher, to find out what type of request received. Next, form    // the corresponding query to the database    switch (sURIMatcher.match(uri)) {    case SEARCH_SUGGEST:        if (selectionArgs == null) {            throw new IllegalArgumentException(                    "selectionArgs must be provided for the Uri: "   uri);        }        return getSuggestions(selectionArgs[0]);    case SEARCH_TESTS:        if (selectionArgs == null) {            throw new IllegalArgumentException(                    "selectionArgs must be provided for the Uri: "   uri);        }        return search(selectionArgs[0]);    case GET_TEST:        return getRecord(uri);    default:        throw new IllegalArgumentException("Unknown Uri: "   uri);    }

makeUrimatcher

private static UriMatcher makeUriMatcher() {    UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);    // For the record    matcher.addURI(AUTHORITY, "tests", SEARCH_TESTS);    matcher.addURI(AUTHORITY, "tests/#", GET_TEST);    // For suggestions table    matcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY,            SEARCH_SUGGEST);    matcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY   "/*",            SEARCH_SUGGEST);    return matcher;}

logcat的

11-30 14:16:27.295: I/ActivityThread(1638): Publishing provider com.simple.search.SuggestionProvider: com.simple.search.SuggestionProvider11-30 14:16:35.424: D/com.simple.search.com.simple.search.SuggestionProvider(1638): Unknown Uri: content://com.simple.search.SuggestionProvider/search_suggest_query/?limit=5011-30 14:16:35.424: E/DatabaseUtils(1638): Writing exception to parcel11-30 14:16:35.424: E/DatabaseUtils(1638): java.lang.IllegalArgumentException: Unknown Uri: content://com.simple.search.SuggestionProvider/search_suggest_query/?limit=5011-30 14:16:35.424: E/DatabaseUtils(1638):  at com.simple.search.SuggestionProvider.query(SuggestionProvider.java:122)11-30 14:16:35.424: E/DatabaseUtils(1638):  at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:117)11-30 14:16:35.424: E/DatabaseUtils(1638):  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:98)11-30 14:16:35.424: E/DatabaseUtils(1638):  at android.os.Binder.execTransact(Binder.java:287)11-30 14:16:35.424: E/DatabaseUtils(1638):  at dalvik.system.NativeStart.run(Native Method)

searchable.xml

<?xml version="1.0" encoding="utf-8"?><searchable xmlns:android="http://schemas.android.com/apk/res/android"    android:hint="@string/search_hint"     android:label="@string/app_label"    android:searchSuggestAuthority="com.simple.search.SuggestionProvider"    android:searchSuggestIntentAction="android.intent.action.VIEW"    android:searchSuggestIntentData="content://com.simple.search.SuggestionProvider/tests"    />

表現(xiàn)

........        <activity            android:label="@string/app_name"            android:name=".SimpleSearch" >            <intent-filter >                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>            <intent-filter>                <action android:name="android.intent.action.SEARCH" />            </intent-filter>                <meta-data android:name="android.app.searchable"                   android:resource="@xml/searchable"/>        </activity>........

解決方法:

為避免討論,如果您提供更多信息,我將更改此答案…

但現(xiàn)在 …

xml中有android:searchSuggestIntentData =“content://com.simple.search.SuggestionProvider/tests”

所以你必須改變

private static UriMatcher makeUriMatcher() {    UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);    // For the record    matcher.addURI(AUTHORITY, "tests", SEARCH_TESTS);    matcher.addURI(AUTHORITY, "tests/#", GET_TEST);    // For suggestions table    matcher.addURI(AUTHORITY, "tests/"   SearchManager.SUGGEST_URI_PATH_QUERY,            SEARCH_SUGGEST);    matcher.addURI(AUTHORITY, "tests/"   SearchManager.SUGGEST_URI_PATH_QUERY   "/*",            SEARCH_SUGGEST);    return matcher;}

如果你沒有看到差異我添加“測試/”

所以現(xiàn)在它將匹配內(nèi)容://com.simple.search.SuggestionProvider/tests/search_suggest_query?limit = 50這正是QSB將發(fā)送的內(nèi)容……

無論如何,你可以/應(yīng)該為你的查詢添加限制

case SEARCH_SUGGEST:    if (selectionArgs == null) {        throw new IllegalArgumentException(                "selectionArgs must be provided for the Uri: "   uri);    }    final String limit = uri.getQueryParameter(SearchManager.SUGGEST_PARAMETER_LIMIT);    return getSuggestions(selectionArgs[0], limit);

然后在getSuggestions中

helper.getReadableDatabase().query(table, projection,                    selection, selectionArgs, null, null, sortOrder, limit);

編輯:

AUTHORITY“tests /”SearchManager.SUGGEST_URI_PATH_QUERY應(yīng)該與android:searchSuggestIntentData相同!!!

EDIT2:來自doc http://developer.android.com/guide/topics/search/adding-custom-suggestions.html

selection The value provided in the android:searchSuggestSelection
attribute of your searchable configuration file, or null if you have
not declared the android:searchSuggestSelection attribute. More about
using this to get the query below. selectionArgs Contains the search
query as the first (and only) element of the array if you have
declared the android:searchSuggestSelection attribute in your
searchable configuration. If you have not declared
android:searchSuggestSelection, then this parameter is null. More
about using this to get the query below.

添加android:searchSuggestSelection =“?”

來源:https://www.icode9.com/content-4-269451.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
android之ContentResolver與ContentProvider
ContentProvider數(shù)據(jù)庫共享之
UriMatcher
【Android】Uri、UriMatcher、ContentUris詳解
ContentProvider使用詳解
Android內(nèi)容提供者(Content provider)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服