4

この質問がここで何度も聞かれていることは知っていますが、私の問題に対する適切な答えが見つかりませんでした.

このコードは、戻るボタンを無効にすることができます:

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

しかし、アクティビティ全体ではなく、一時的に戻るボタンを無効にできる方法はありますか?

4

5 に答える 5

13

戻るボタンを無効にするのに最適なソリューションです

   @Override
   public void onBackPressed() {

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

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

    }

}
于 2013-06-26T04:18:10.770 に答える
5

Dixitによる素敵な答え。ちょうど別のオプション

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

注意..

  • 古いバージョンでも動作します

  • onKeyDown から true を返すと、デフォルトの動作が消費されます

于 2013-06-26T04:30:02.673 に答える
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();       

    }

}
于 2013-06-26T04:26:56.260 に答える