将"搜索"按钮添加到工具栏并单击"开始新活动"



我想在工具栏中添加一个搜索放大类按钮。到目前为止,我有以下代码:

@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来填充实时搜索结果。我不想在初始Activity上执行此操作;我只想允许用户单击搜索,导航到与Algolia链接的新Activity,然后开始键入第二个Activity以查看实时搜索结果。

欢迎提出任何建议!

使用此代码

main_menu.xml

<?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" />

现在在你的主要活动中,喜欢这个

主活动.java

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

这将以你期望的方式工作

相关内容

  • 没有找到相关文章

最新更新