我有一个存储用户搜索历史的应用程序。我现在也在添加自定义建议。这需要我再添加一个方法,并在我的类query()
中覆盖它。MyCustomSuggestionProvider
但是,这样做会阻止显示最近的建议。它们仍被存储在Suggestions.db 中。当我删除query()
要测试的方法时,最近的建议又回来了。
有谁知道如何使这两个东西一起工作?
问题不是覆盖查询(),而是我处理它的方式。这是我的解决方案:
@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;
}
}