操作栏上的search小部件不会触发我的search活动

我正在开发基于官方教程的search小部件界面: http : //developer.android.com/guide/topics/search/search-dialog.html

问题:当我input我的查询时,我的SearchableActivity不会被触发,然后按确定/input。

清单SearchableActivity:

<activity android:name="SearchableActivity" 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" /> </activity> 

XML / searchable.xml

 <?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:hint="Search" android:label="@string/app_name" > </searchable> 

将图标添加到操作栏的主要活动生命周期方法(正常工作):

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); // Get the SearchView and set the searchable configuration SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); // Do not iconify the widget;expand it by default searchView.setIconifiedByDefault(false); return true; } 

SearchableActivity.java

 public class SearchableActivity extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("MY", "search activity triggered"); } } 

注意:search小部件出现在操作栏上,我可以插入数据,但是按下OK / Enter不会将我带到SearchableActivity(不会触发SearchableActivity的onCreate)。

我错过了什么,或者是官方的教程有缺陷?

Solutions Collecting From Web of "操作栏上的search小部件不会触发我的search活动"

解决的问题:教程似乎缺less一个重要的部分: <meta-data android:name="android.app.default_searchable" android:value=".MySearchActivityName" />必须被添加到清单中的<application>search小工具正常工作。

编辑 – 也提示解决一个问题时,没有触发数据发布的操作栏search(没有给出任何错误和文件没有听说过这个限制):在searchable.xml文件android:提示和android:标签属性必须是对strings.xml中的string的引用。 资源

您应该重写onOptionsItemSelected并可能onSearchRequested在您的活动。

如果“xml / searchable.xml”文件的格式不正确(比如“searchable”标签不是全部小写),则在执行过程中不会返回错误消息,并且不会调用“SearchableActivity”。