2012-01-25 2 views
0

내 장치에서 검색 키를 누르면 흰색 배경이 표시됩니다. 그러나 뒤로 버튼을 누르면 이전 활동의 배경을 복원하고 싶습니다. ivBackground은 내가 내 relativelayout에 추가 한 변수로, 내가 흰색 배경을 보여주기 위해 VISIBLE을 설정합니다.Android : 검색 버튼을 눌렀을 때 흰색 배경 표시

위의 코드가 작동하는 동안 뒤로 버튼을 누르면 여전히 흰색 화면이 유지됩니다. 다시 한 번 뒤로 버튼을 누르면 사라집니다. 어떤 해결책?

답변

1

관련 활동에서 SearchManager 객체에 대한 참조를 가져올 수 있습니다. 이 경우 검색 입력란을 닫을 때 OnDismissListener을 설정할 수 있습니다. 예 :

this.searchMgr = (SearchManager)this.getSystemService(Context.SEARCH_SERVICE); 
this.searchMgr.setOnDismissListener(new OnDismissListener() { 
    public void onDismiss() { 
     ivBackground.setVisibility(View.GONE); 
    } 
}); 

는 사용자가 검색이 도움이

@Override 
public boolean onSearchRequested() { 
    ivBackground.setVisibility(View.VISIBLE); 
    return super.onSearchRequested(); 
} 

희망을 시작하는 욕망을 신호 할 때 호출 액티비티 클래스, 내부 onSearchRequested을 무시할 수, 흰색 배경 볼 수 있도록합니다!

+0

덕분에, 그 속임수를했습니다. – OckhamsRazor

0

어떻게 SearchView.OnCloseListener 나 또한 당신의보기를 숨기는 SearchManager.OnDismissListener 설정에 대한? 두 사건이 논리적으로 연결되어 있기 때문에 이것은 어쨌든 올바른 해결책처럼 보입니다. 예를 들어 나중에 프로그래밍 방식으로 검색보기를 닫을 경우 배경보기를 개별적으로 해제하는 것에 대해 걱정할 필요가 없습니다.

+0

검색 창 자체가 표시되지 않기 때문에 트릭을 수행하지 않습니다. – OckhamsRazor

관련 문제