将搜索按钮添加到工具栏并在单击时开始新建 Activity
Add Search Button to Toolbar and Start New Activity on Click
我想在我的工具栏中添加一个搜索放大 class 按钮。到目前为止,我有以下代码:
@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;
}
然而,这不是我想要的行为。
我希望搜索能够立即打开一个新的 activity,用户可以在工具栏中键入内容并立即执行查询,而不必再次单击搜索。
原因 - 我想使用 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" />
现在在你的主activity中这样做
MainActivity.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);
}
}
}
这将按您预期的方式工作
我想在我的工具栏中添加一个搜索放大 class 按钮。到目前为止,我有以下代码:
@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;
}
然而,这不是我想要的行为。
我希望搜索能够立即打开一个新的 activity,用户可以在工具栏中键入内容并立即执行查询,而不必再次单击搜索。
原因 - 我想使用 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" />
现在在你的主activity中这样做
MainActivity.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);
}
}
}
这将按您预期的方式工作