Android:使用自定义searchview搜索

时间:2015-12-11 21:27:35

标签: java android google-maps

我在this教程之后实现了搜索方法。搜索功能和建议工作正常。但问题是,当我调用onSearchRequested()时,会出现以下searchView

first ss

我可以在这里搜索并获得建议没问题

second ss

但我想搜索我在FragmentActivity上单独添加的searchView

final ss

我希望用户在此输入并在此处显示建议。我如何实现这一目标? 我的主要活动如下

<activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <!-- Points to searchable activity -->
        <meta-data android:name="android.app.default_searchable"
            android:value=".MapsActivity" />

        <!-- Points to searchable meta data -->
        <meta-data android:name="android.app.searchable"
            android:resource="@xml/searchable"/>
    </activity>

1 个答案:

答案 0 :(得分:0)

好吧,因为我没有得到正确的答案,我必须自己找到解决方案。经过2天的谷歌搜索和反复试验后,我发现我不需要在较新版本的Android上拨打onSearchRequested()。相反,如果我有一个SearchView,我需要添加以下行

    mapSearch = (SearchView) findViewById(R.id.msearchView); //msearchView is my SearchView name
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    mapSearch.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

希望这将有助于将来遇到此问题的任何人