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);
    }
}

}