从可搜索的建议窗口中选择项目后,在searchView中设置文本

Hun*_*unt 0 android android-contentprovider android-search

我在我的android应用程序中实现了可搜索的建议,并在自动完成文本中显示结果(我已经与搜索视图绑定).

以下是我的配置

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="Search Name"
 android:searchSuggestAuthority="com.mdb.db"
 android:searchSuggestIntentAction="android.intent.action.VIEW" />
Run Code Online (Sandbox Code Playgroud)

这是我的匹配器

 MATCHER.addURI(MyApp.AUTHORITY,SearchManager.SUGGEST_URI_PATH_QUERY, DB.NAME.SEARCH_SUGGEST);
 MATCHER.addURI(MyApp.AUTHORITY,SearchManager.SUGGEST_URI_PATH_QUERY+"/*", DB.NAME.SEARCH_SUGGEST);
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我输入文本并查看自动完成列表并点击自动完成内的任何项目时,它会打开相同的活动,而不是在a中设置所选项目searchview.我不知道如何解决这个问题.

Gok*_*rni 7

您可以尝试以下它将工作,

mSearchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
        @Override
        public boolean onSuggestionSelect(int i) {
            return false;
        }

        @Override
        public boolean onSuggestionClick(int position) {
            mSearchView.setQuery(/*get the clicked item here*/, false); //to set the text
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)

不要忘记在onSuggestionClick回调中返回"true",如果返回true,则确保事件不会返回到父级,但如果返回false,则android假定您甚至希望父级处理事件并且父事件处理程序被调用.