当用户按下硬件搜索按钮时,如何在android中执行搜索?
我用它进行软件搜索(当用户按下放大镜时,搜索会在菜单中折叠),它可以完美地工作:当用户按下硬件搜索按钮时,如何在android中执行搜索?,android,android-search,Android,Android Search,我用它进行软件搜索(当用户按下放大镜时,搜索会在菜单中折叠),它可以完美地工作: @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.view_entries, menu);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.view_entries, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.viewMenu_search).getActionView();
int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
TextView textView = (TextView) searchView.findViewById(id);
textView.setTextColor(Color.YELLOW);
textView.setHintTextColor(Color.WHITE);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return true;
}
@Override
public boolean onQueryTextChange(String s) {
ViewEntries.this.customAdapter.getFilter().filter(s);
return true;
}
});
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
return true;
}
我的问题是:当用户使用硬件按钮开始搜索时,如何获取搜索查询字符串(类似于参数字符串s的字符串)。我尝试了这一点,但我得到的不是搜索意图,而是启动活动的意图(因此我从未输入if):
我还说,在emulator上调试时,onSearchRequested在您开始搜索时调用,而不是在您输入查询后调用。可能是关于如何在那里获取searchview(id或其他信息)的提示?有多少(当前)android设备带有硬件搜索按钮?我必须这样做。。。我知道,我知道…没有判断,只是好奇。我知道有这些要求;)
@Override
public boolean onSearchRequested() {
Intent intent1 = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String s = intent1.getStringExtra(SearchManager.QUERY);
ViewEntries.this.customAdapter.getFilter().filter(s);
}
return super.onSearchRequested();
}