SearchWidget을 올바르게 구현하려고하지만 일부 문제가 있습니다. 호출하는 Activity에서 쿼리를 실행하는 Activity로 일부 정보를 전달해야하기 때문에 onSearchRequested()를 재정의합니다.SearchWidget이 onSearchRequested()를 호출하지 않습니다.
SearchWidget이 "포커스"를 잃어 버렸을 때만 발생합니다. 이것은 "집중된"SearchWidget을 의미합니다 : SearchWidget (그리고 focues SearchWidget)을 건드리지 않고 검색하면 onSearchRequested()가 올바르게 호출됩니다. BUT 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;
}