Java 将搜索按钮添加到工具栏,并在单击时启动新活动
我想在工具栏上添加一个搜索放大类按钮。到目前为止,我有以下代码:Java 将搜索按钮添加到工具栏,并在单击时启动新活动,java,android,searchview,Java,Android,Searchview,我想在工具栏上添加一个搜索放大类按钮。到目前为止,我有以下代码: @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_search, menu); SearchView search = (SearchView) MenuItemCompat.getA
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_search, menu);
SearchView search = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.search));
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
search.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(this, SearchResultsActivity.class)));
search.setQueryHint(getResources().getString(R.string.search_hint));
return true;
}
然而,这不是我所追求的行为
我希望搜索能够立即打开一个新的活动,用户可以在工具栏中键入内容并立即执行查询,而无需再次单击搜索
原因-我想用它来实时填充搜索结果。我不想在最初的活动中这样做
;我只想允许用户单击搜索,导航到一个与Algolia链接的新的活动
,然后开始在第二个活动
中键入以查看实时搜索结果
任何建议都将不胜感激 使用此代码
main_menu.xml
这将按照您期望的方式运行所以,您只需要一个常规菜单项,是吗?对其使用放大镜图标,然后在
onOptionsItemSelected()
上启动活动?我不确定你问的是哪一部分。我基本上希望能够点击放大镜,然后开始一项新的活动。然后,该新活动有一个工具栏,在该工具栏中,会提示用户输入搜索词right。你对哪一部分有意见?第一个活动中的菜单项
?或者是第二个SearchView
?实际上,我能找到的文档只在SearchView上讨论,这不是我正在寻找的行为。那么,你不希望在第一个活动中使用SearchView
。正如我上面所描述的,你只需要一个常规的菜单项就可以了。在第二种情况下,您可以将
直接放在布局中的
中,并将iconifiedByDefault
设置为false
<?xml version="1.0" encoding="utf-8"?>
<item
android:id="@+id/option_search"
android:icon="@drawable/icon_search"
android:orderInCategory="100"
app:showAsAction="always"
android:title="Search" />
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.option_search:
//go to search
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}