0

我有一个存储用户搜索历史的应用程序。我现在也在添加自定义建议。这需要我再添加一个方法,并在我的类query()中覆盖它。MyCustomSuggestionProvider

但是,这样做会阻止显示最近的建议。它们仍被存储在Suggestions.db 中。当我删除query()要测试的方法时,最近的建议又回来了。

有谁知道如何使这两个东西一起工作?

4

1 回答 1

0

问题不是覆盖查询(),而是我处理它的方式。这是我的解决方案:

@Override
public Cursor query(Uri uri, String[] projection, String selection,
        String[] selectionArgs, String sortOrder) {

    Cursor recentCursor = super.query(uri, projection, selection,
            selectionArgs, sortOrder);

    query = selectionArgs[0];
    if (query == null || query.length() < 3) {

        return recentCursor;

    } else {

        query = selectionArgs[0];

        MatrixCursor customCursor = new MatrixCursor(COLUMN_NAMES);

        SearchSuggestionObject[] suggestions = getSuggestionsFromWebFeed(query);

        for (SearchSuggestionObject suggestion : suggestions) {

            customCursor.addRow(new Object[] { suggestion.getId(),
                    suggestion.getItem(), suggestion.getCat(),
                    suggestion.getItem(), suggestion.getItem(),
                    suggestion.getCat(), "android.intent.action.SEARCH" });
        }

        return customCursor;
    }
}
于 2013-04-10T18:39:23.257 回答