2013-06-26 41 views
3

我知道這個問題在這裏被問了很多次,但是我沒有找到問題的答案。
禁用臨時時間的返回按鈕

這段代碼可以禁用後退按鈕:

@Override 
public void onBackPressed() { 
    // Do Here what ever you want do on back press; 
} 

,但反正是有,我可以暫時禁用時間後退按鈕,而不是整個活動?

+0

你選中此[鏈接](http://stackoverflow.com/a/14810960/2194831) – Krrishnaaaa

+0

檢查這個問題http:// stackover flow.com/questions/16893340/how-to-disable-temporarily-a-button-android –

+0

@Krrishnaaaa,:)多麼奇怪!我在詢問我之前先閱讀了這個問題,但我沒有注意到這一點。謝謝。 – Alamri

回答

4

很好的答案。只是另一種選擇

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    boolean result = false; 
    if (keyCode == KEYCODE_BACK) { 
     if (condition) { 
      result = true; 
     } 
    } 
    return result; 
} 

NB ..

  • 它將在古老的版本也

  • 返回從真正的onkeydown工作所消耗的默認行爲

+0

+1亞這將適用於所有版本。 :) –

+0

被選爲支持所有版本和答案的正確答案。謝謝.. – Alamri

12

它是禁用後退按鈕完美的解決方案

@Override 
    public void onBackPressed() { 

    if(condition to check){ 
     // this block disable back button 

    }else{ 
     // this block enable back button 
     super.onBackPressed();  

    } 

} 
3

你必須對boolean flag,你必須設置爲需要禁用後退按鈕設置flag value true;

onBackPressed()你必須把情況按@Dixit說由迪克希特

@Override 
    public void onBackPressed() { 

    if(condition to check){ 
     // this block disable back button 

    }else{ 
     // this block enable back button 
     super.onBackPressed();  

    } 

} 
+0

非常感謝,從來沒有想過這有一個解決方案。 – Alamri