2013-07-24 195 views
10

我想添加语音搜索功能到我的应用程序。我在SherlockActivity中填充SearchView。但我找不到解决方案来将语音搜索功能添加到SearchView对象。如何实现语音搜索到SearchView

您能否给出建议,我需要做什么?下面

代码:

public class MainActivity extends SherlockActivity { 
     private SlidingMenu slidingMenu; 
     private SlidingMenu slidingMenuRight; 
     private String mFilterArrays[]; 
     public long lastScrollTime=0; /** En son kaydırma ne zaman yapıldı*/ 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
    } 

     public boolean onCreateOptionsMenu(Menu menu) { 

        //Create the search view 
        SearchView searchView = new SearchView(getSupportActionBar().getThemedContext()); 
        searchView.setQueryHint("Search..."); 


        menu.add("Search") 
         .setIcon(R.drawable.ic_search_inverse) 
         .setActionView(searchView) 
         .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 
         return true; 
    } 
} 

Mainfest

<activity 
    android:name="com.paea.bcp.MainActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="com.paea.bcp.MainActivity" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <action android:name="android.intent.action.SEARCH" />     
    </intent-filter> 
</activity> 

回答

5

您可以检查出的文档here

更新:如果您SearchActivity是同一个,您可以覆盖onNewIntent和处理在那里搜索意图。也可以将您的活动设置为singleTop,这样活动只有一个实例会保持在最前面。

希望这可以帮助,并请通知,如果你找到解决办法。

干杯!

2

在您的res/xml文件夹中,您应该有一个可搜索文件(通常称为searchable.xml)。

在该文件中的元素<searchable />,你应该添加此属性:

android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"

还有其他语音相关的属性(目前voicePromptTextvoiceLanguageModelvoiceLanguage),这是所有described here