【发布时间】:2016-04-27 16:11:42
【问题描述】:
这是我的应用程序的主要活动。从主要活动中,我可以通过从 RecyclerView 列表中选择任何类别来导航到项目列表活动。我还需要通过直接在工具栏中的 android SearchView 小部件中搜索项目名称来转到相同的项目列表活动。我这样写了searchview的代码
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.app_bar_item, menu);
/*final MenuItem item = menu.findItem(R.id.search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
searchView.setOnQueryTextListener(this);*/
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
if (null != searchView)
{
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true);
}
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query)
{
Log.d("TAG","You queried for="+query); // Here it prints correct query input. but doesnot starting the new activity.
Intent intent3 = new Intent(getApplicationContext(),ItemListActivity.class);
intent3.putExtra("FetchType","ItemSearch");
intent3.putExtra("CatId",query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
};
searchView.setOnQueryTextListener(queryTextListener);
return super.onCreateOptionsMenu(menu);
}
/*And i accept both the navigations from main activty(By selecting Category list item, or by inputing hint in search widget) in my list item activity like:*/
Bundle extras=getIntent().getExtras();
if(extras!=null)
{
fetch_hint = extras.getString("FetchHint"); /* Fetch hint is Category name selected or Searchquery input.*/
fetch_type = extras.getString("FetchType"); /* if activity start from category item selection, Fetch type is set as ByCat, If it is from searchview set as ItemSearch*/
}
按类别搜索可以正常工作,但不能用于搜索视图。请帮我。提前致谢
【问题讨论】:
标签: android searchview