【发布时间】:2012-05-10 23:39:33
【问题描述】:
我正在尝试正确实施SearchWidget,但我遇到了一些问题。我覆盖了onSearchRequested(),因为我需要将一些信息从调用活动传递给执行查询的Activity。
仅当SearchWidget 失去其“焦点”时才会发生这种情况。这就是我所说的“专注”SearchWidget:
如果我在不接触SearchWidget 之外进行搜索(因此焦点SearchWidget)onSearchRequested() 被正确调用。
但是当我触摸SearchWidget 之外并失去焦点时,当我执行搜索时,不会调用方法onSearchRequested()。
这是onSearchRequested的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.actionbar_mainscreen, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
mSearchItem = menu.findItem(R.id.search);
mSearchView = (SearchView) mSearchItem.getActionView();
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
mSearchView.setIconifiedByDefault(true);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.search:
onSearchRequested();
break;
case R.id.mainscreen_favorites:
Intent intent = new Intent(this, FavoritesActivity.class);
startActivity(intent);
break;
}
return true;
}
@Override
public boolean onSearchRequested() {
Bundle appData = new Bundle();
appData.putInt(Constants.EXTRA_CATEGORY, index);
startSearch(null, false, appData, false);
return true;
}
【问题讨论】:
标签: android android-widget android-view android-actionbar android-searchmanager