2011-12-19 5 views
1

내 앱의 콘텐츠보기에 오버레이보기가 추가되었습니다.뒤로 버튼에 작업 추가

기본 뒤로 버튼 기능을 사용하기 전에이 오버레이보기를 제거하려면 뒤로 버튼에 작업을 추가하고 싶습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

감사합니다.

답변

4

이 시나리오의 해결책은 사용자가 응용 프로그램에있는 위치를 전체적으로 나타내는 것입니다.

//... 
private boolean mInSettingsMode; 
//... 

// The button's onclick method. 
public void onSettingsButtonClick(View v) { 
    mInSettingsMode = true; 
    // Initialize view stuff. 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     if (mInSettingsMode) { 
      mInSettingsMode = false; 
      resetToNormalView(); 
      return true; 
     } else { 
      return super.onKeyDown(keyCode, event); 
     } 
    }  
    return super.onKeyDown(keyCode, event); 
} 
+0

멋진 감사를 무시해야하는 활동의 방법입니다, 나는 그것을했습니다. :) 메소드를 다시 작성했지만,'if (keyCode == KeyEvent.KEYCODE_BACK && mInSettingsMode) {'그래서'return super.onKeyDown (keyCode, event);'문만 있습니다. 팁 고마워. –

2

onKeyDown() 메서드를 구현하고 keyCode가 돌아 왔는지 확인해야합니다. 그렇다면 원하는 모든 것을 할 수 있습니다.

희망이 도움이됩니다.

+0

를 onKeyDown에 ... 활동 방법이다

예를 들어, (직선 내 현재 프로젝트)이 고려? –

+0

Yepp 그것은 당신이 –

1

당신은 onBackPressed()를 오버라이드 (override) :

@Override 
public void onBackPressed() 
{ 
    // Add your code here 

    // Then call the parent constructor to have the default button functionality 
    super.onBackPressed(); 
} 
+0

이것은 안드로이드 2.0 이상에서만 사용할 수 있습니다. 안드로이드 4.0의 출현으로 아마 1.6을 지원하는 것을 멈추는 것이 가장 좋을 것이라고 생각합니다. –

+0

Android 1.6은 현재 시장 점유율 (http://developer.android.com/resources/dashboard/platform-versions.html)의 1.3 %에 불과하며 일반적으로 지원하기 위해 시간을 낭비합니다. . – Dalmas