2015-11-21 49 views
0

我將語音搜索功能添加到我的應用程序。 從所有的例子,我發現我需要補充的東西是這樣的:在Android Manifest其中"@xml/searchable"搜索具有相同活動的兩種產品

<application ... > 
<activity android:name=".SearchableActivity" > 
    <intent-filter> 
     <action android:name="android.intent.action.SEARCH" /> 

    </intent-filter> 
    <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable"/> 
</activity> 
... 

的資源像這樣的:

<?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"> 

search_hint字符串像"Search <content-or-product>"

的問題是,只有一個

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

可以爲Activity指定。所以問題是:我如何使用相同的Activity來處理兩種產品的搜索?

回答

1

假設SearchableActivity的功能對任一產品都沒有變化,您可以通過創建兩個擴展SearchableActivity的活動來解決清單限制問題。

<activity android:name=".SearchProductActivityA"> 
    <intent-filter> 
     <action android:name="android.intent.action.SEARCH" /> 
    </intent-filter> 
    <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable_a"/> 
</activity> 
<activity android:name=".SearchProductActivityB" > 
    <intent-filter> 
     <action android:name="android.intent.action.SEARCH" /> 
    </intent-filter> 
    <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable_b"/> 
</activity> 
+0

沒錯,但我想知道是否有更好的解決方案。僅爲此創建一個新的活動似乎是錯誤的。那麼如果我你有很多產品(像我一樣)... – kingston

+0

我想一個妥協方法是將文本更改爲「搜索產品」之類的通用內容。如果只能在元數據中定義一個Searchable,我不會看到其他解決方法。 – fractalwrench