【问题标题】:Show selection from suggestion list in Android searchview在 Android 搜索视图中显示建议列表中的选择
【发布时间】:2014-01-29 06:53:45
【问题描述】:

我有一个带有建议列表的搜索视图。如果用户从列表中选择了一个项目,则会发送一个新的意图,我可以应用我的过滤器,但搜索视图仍然是空的。

如果我用 setQuery 更新 onNewIntent 中的搜索视图(见下文),效果是所选项目显示在搜索视图中,但建议列表再次弹出。我可以避免这种情况,只在搜索视图中显示当前查询文本而不弹出建议列表吗?

@Override
protected void onNewIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
    final String query = intent.getStringExtra(SearchManager.QUERY);
    if (!query.equals(searchView.getQuery())) {
    searchView.setQuery(query, false); // makes the suggestions pop up
    }
    applyFilter(query);
}
}

【问题讨论】:

    标签: android searchview


    【解决方案1】:

    诀窍是通过在搜索视图上使用 onSubmitListener 并从其 onSuggestionClick 方法返回 true 来替换搜索管理器的默认行为,而不是在意图处理程序中调用 setQuery(query, false):

    @Override
    public boolean onSuggestionClick(int position) {
    String suggestion = getSuggestion(position);
    searchView.setQuery(suggestion, true); // submit query now
    return true; // replace default search manager behaviour
    }
    
    private String getSuggestion(int position) {
    Cursor cursor = (Cursor) searchView.getSuggestionsAdapter().getItem(
        position);
    String suggest1 = cursor.getString(cursor
        .getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1));
    return suggest1;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多