5

当我尝试使用 ActionBar 上的 searchView 设置自动完成搜索时遇到问题。

我有一个 contentProvider,它自己调用一个 webService 来获取建议。它返回一个光标,并在 UI 上正确显示建议。

问题是当我选择其中一个建议时没有任何反应。

我不确定在 SUGGEST_COLUMN_INTENT_ACTION 中存储什么。

在阅读文档时,我了解到应该再次调用我的活动的 onCreate 方法,并且我可以让 SUGGEST_COLUMN_INTENT_ACTION 了解上下文并使用 intent.getData() 获取 SUGGEST_COLUMN_INTENT_DATA。

onCreate 永远不会被调用,不会抛出异常,什么也不会发生......

我错过了什么?为什么当我选择建议时没有任何反应?

我的 searchable.xml :

        <?xml version="1.0" encoding="utf-8"?>
            <searchable xmlns:android="http://schemas.android.com/apk/res/android"
            android:label="@string/app_name"
            android:hint="@string/search_hint" 
            android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
            android:searchSuggestAuthority="MyPackage.search_suggestion_provider"
             android:searchSuggestIntentAction="android.intent.action.SEARCH" >
        </searchable>
4

1 回答 1

6

我刚刚将setOnClickListener更改为setOnSuggestionListener并且它起作用了......

现在,我获得了点击建议的位置,但我需要在搜索完成后我的提供者在光标中设置的 id。我是这样做的:

    CursorAdapter c = searchView.getSuggestionsAdapter();
    ...
    Cursor cur = c.getCursor();
    cur.move(position);
    String val = cur.getString(cur.getColumnIndex(BaseColumns._ID));

这是最好的方法吗?

由于缺乏关于使用 contentProvider 异步调用 webService 的 actionBar 中的 searchView 的良好教程,我只是尝试完成这项工作,我还有另一个问题:

我从不创建任何描述显示我的建议的列表的 xml 文件。它是如何工作的 ?它是否设法根据我的 contentProvider 返回的 curosr 的描述创建此 listView ?

再次感谢。

于 2013-05-28T07:26:44.663 回答