Android 无法使SearchActivity启动
我尝试在操作栏中创建SearchView,以启动已注册的SearchResultsActivity,以处理操作搜索。我做了所有必要的步骤,但仍然没有工作 代码如下: 1.搜索视图菜单项:menu/main.xml 4.添加新活动SearchResultsActivity并将其标记为处理搜索操作: 公共类SearchResultsActivity扩展了ListActivity{Android 无法使SearchActivity启动,android,android-intent,searchview,Android,Android Intent,Searchview,我尝试在操作栏中创建SearchView,以启动已注册的SearchResultsActivity,以处理操作搜索。我做了所有必要的步骤,但仍然没有工作 代码如下: 1.搜索视图菜单项:menu/main.xml 4.添加新活动SearchResultsActivity并将其标记为处理搜索操作: 公共类SearchResultsActivity扩展了ListActivity{ public static final String TAG = SearchResultsActivity.c
public static final String TAG = SearchResultsActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "In SearchResult OnCreate");
setContentView(R.layout.activity_search_results);
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
new String[]{"Product1", "Product2"}));
}
}
AndroidMainfest.xml:
<activity
android:name="com.me.searchonpre3.SearchResultsActivity"
android:label="@string/title_activity_search_results">
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
</activity>
按下搜索键盘图标时,不会启动上述所有设置和搜索结果活动
我还应该做什么
注意:当我添加setOnQueryTextListener时,调用MainActivity类的回调。Android教程似乎有误导性 答案如下:使用android.support.v7.widget.SearchView避免SDK检查。
<activity
android:name="com.me.searchonpre3.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
SearchView searchView = (SearchView) menu.findItem(R.id.search_action).getActionView();
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
}
}
return true;
}
public static final String TAG = SearchResultsActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "In SearchResult OnCreate");
setContentView(R.layout.activity_search_results);
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
new String[]{"Product1", "Product2"}));
}
}
<activity
android:name="com.me.searchonpre3.SearchResultsActivity"
android:label="@string/title_activity_search_results">
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
</activity>