SearchRecentSuggestionsProvider DATABASE_MODE_2LINES配置最近建议以添加第二行文本。该文本来自哪里?

时间:2015-06-16 14:45:42

标签: android android-contentprovider android-search android-searchmanager

来自this developer guide

  

数据库模式必须包含DATABASE_MODE_QUERIES,并且可以选择包含 DATABASE_MODE_2LINES,它会在建议表中添加另一列,允许您为每个建议提供第二行文字。

来自this reference doc

  

public static final int DATABASE_MODE_2LINES

     

此模式位将数据库配置为包含第二个注释行   每个条目。 可选的

问题是这个注释行/文本来自哪里?

从我在开发者指南中看到的到目前为止,我们没有提供任何带有我们的搜索查询的注释文本,这些文本将添加到建议表中添加的额外列中,之后在最近的建议列表作为第二个注释行。

1 个答案:

答案 0 :(得分:1)

在通过在saveRecentQuery(searchQuery, annotationText)的实例上调用RecentQuerySuggestions将搜索查询保存到最近查询的集合时提供

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent  = getIntent();

    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this,
                MySuggestionProvider.AUTHORITY, MySuggestionProvider.MODE);
        suggestions.saveRecentQuery(query, null); // *** The second argument is that annotation text
    }
}

Reference

来自reference of saveRecentQuery

  

public void saveRecentQuery(String queryString,String line2)

     

向最近查询列表添加查询。立即返回,   在后台执行保存。

     

<强>参数    queryString 用户输入的字符串。此字符串将显示为建议,如果用户单击该建议,   此字符串将发送到您的可搜索活动(作为新搜索   查询)。

     

line2 如果您已使用DATABASE_MODE_2LINES配置了最近的建议提供程序,则可以在此处传递第二行文本。它会   在主要建议下方以较小的字体显示。打字时,   任何一行文本中的匹配都将显示在列表中。如果你   没有配置双线模式,或者如果给定的建议没有   要显示任何其他文本,您可以在此处传递null。