【问题标题】:How to build suggestions table for custom search suggestions?如何为自定义搜索建议构建建议表?
【发布时间】:2013-04-27 11:11:01
【问题描述】:

我正在我的应用程序中实施自定义搜索建议。我找到了有关添加自定义建议的开发人员文档。 http://developer.android.com/guide/topics/search/adding-custom-suggestions.html

到目前为止,我已经创建了一个这样的 searchable.xml。

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider">
</searchable>

我现在正在实施 MyCustomSuggestionProvider,但我发现构建建议表很困难。如何使用 MatrixCursor 构建建议表而不实际构建文档中提到的表?请提供代码,以便于理解。

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以考虑使用 SQLiteQueryBuilder 和 ProjectionMap 来实现相同的结果。这是代码sn-p供您参考。

    private static final HashMap<String, String> PROJECTION_MAP = new HashMap<String, String>();
    static {
        PROJECTION_MAP.put("_id", Symbol.COL_ID);
        PROJECTION_MAP.put(SearchManager.SUGGEST_COLUMN_TEXT_1, "col1 AS " + SearchManager.SUGGEST_COLUMN_TEXT_1);
        PROJECTION_MAP.put(SearchManager.SUGGEST_COLUMN_TEXT_2, "col2 AS " + SearchManager.SUGGEST_COLUMN_TEXT_2);
        PROJECTION_MAP.put(SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID, "_id AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID);
    }
    
    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
        builder.setTables("table");
        builder.setProjectionMap(PROJECTION_MAP);
        return builder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      相关资源
      最近更新 更多