다음과 같이 onBackPressed를 재정의하십시오.
@Override
public void onBackPressed() {
if (searchView.isShown()){
searchView.onActionViewCollapsed();
searchView.setQuery("",false);
isClosed = true;
} else{
super.onBackPressed();
}
}
onCreateOptionsMenu는 다음과 같이 mSearchView를 팽창시킵니다.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_search, menu);
mSearchView = (SearchView) menu.findItem(R.id.menu_action_search).getActionView();
mSearchView.setOnQueryTextListener(this);
mSearchView.setOnSearchClickListener(this);
mSearchView.setOnCloseListener(this);
isClosed = true;
return true;
}
클래스가 다음과 같이 구현 했습니까?
public class myActivity extends FragmentActivity implements
SearchView.OnQueryTextListener, View.OnClickListener, SearchView.OnCloseListener {
또한 다음이 필요합니다.
@Override
public void onClick(View view) {
isClosed = false;
}
@Override
public boolean onClose() {
isClosed = true;
return false;
}
활동에 대해 "mSearchView"및 "isClosed"를 모두 전역 변수로 만들어야합니다.