我試圖正確實現SearchWidget,但我正面臨一些問題。我重寫onSearchRequested()是因爲我需要將一些信息從調用Activity傳遞到執行查詢的Activity。SearchWidget not calling onSearchRequested()
只有當SearchWidget失去「焦點」時纔會發生。這就是我的意思是「專注」SearchWidget: 如果我搜索時沒有觸及SearchWidget以外(和SearchFidget一樣SearchWidget)onSearchRequested()被正確調用。 但是當我在SearchWidget之外觸摸並且失去焦點時,當我執行搜索時,onSearchRequested()方法不會被調用。
這是onSearchRequested的代碼: @Override 公共布爾onCreateOptionsMenu(菜單菜單){ MenuInflater充氣= 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;
}