Как объявить 2 поисковых активности в манифесте Android - PullRequest
1 голос
/ 15 апреля 2011

Я пытаюсь реализовать две различные операции поиска, одну для сотовых (с виджетом поиска) и другие для не сотовых (с диалоговым окном поиска).

Мой манифест выглядит так:

 <activity android:name=".activities.Search" 
                android:theme="@style/NoTitleTheme"
                android:configChanges="orientation|keyboardHidden" 
                android:launchMode="singleTop">
                    android:enabled="@bool/disableForNonHoneycomb"
                <intent-filter>
                    <action android:name="android.intent.action.SEARCH" />
                </intent-filter>
                    <meta-data  android:name="android.app.searchable" 
                        android:resource="@xml/searchable"
                        android:value=".activities.Search"/>
            </activity>
            <activity android:name=".activities.SearchHoneycomb" 
                android:theme="@style/CustomTheme"
                android:configChanges="orientation|keyboardHidden"
                    android:enabled="@bool/enableForNonHoneycomb"
                android:launchMode="singleTop">
                <intent-filter>
                    <action android:name="android.intent.action.SEARCH" />
                </intent-filter>
                <meta-data  android:name="android.app.searchable" 
                            android:resource="@xml/searchable"
                            android:value=".activities.SearchHoneycomb"/>
            </activity>

И я использую следующий код, чтобы получить доступную для поиска конфигурацию и настроить представление поиска в своей деятельности.

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
_searchView = (SearchView) mCustomView.findViewById(R.id.action_bar_searchwidget);
_searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

Проблема в том, что когда я использую поисковый виджет, он не запускает действие SearchHoneycomb. Как я могу сделать эту работу?

Спасибо.

1 Ответ

4 голосов
/ 03 мая 2011

Итак, после большого количества исследований ... невозможно выполнить 2 операции поиска, так как манифест Android принимает только 1 метаданные для поиска по умолчанию.Я получил обходной путь, используя диалоговое окно поиска с метаданными, доступными для поиска по умолчанию, и внедрил виджет querytextlistener for search.

...