2010-08-30 29 views
11

我在活動中使用了onKeyDown功能.....但是當返回按鈕 單擊按鈕時,它首先取消對話框並轉到我們的 活動。 ..我想,當 單擊後退按鈕或禁用後退按鈕時,顯示的對話框 盒兩者或者兩者的活動和對話框關閉...當警報框在屏幕上時,如何禁用後退按鈕

任何一個可以提出這方面的任何解決方案....

在此先感謝,


更新

您好感謝您的回答。 progressDialog.setCancelable(false);工作正常。

但這裏我想要不同的東西。 當進度對話框運行時,我將按下BACK鍵,我想顯示一個警告對話框,以便用戶可以通知進程正在運行。

有沒有解決方法呢?

請幫幫我。

在此先感謝。

回答

58

你嘗試了setCancelable()屬性設置爲false

像這樣的事情

progressDialog.setCancelable(false); 
+10

- 這與AlertDialog一起工作...以防萬一需要知道。 – dell116 2011-04-14 16:51:24

2

可能這會在你的情況幫:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // Show your Alert Box here 
     } 
     return false; 
    } 
+0

感謝您的回答。 這個問題早就回來了。我會嘗試如果得到時間。 – gsmaker 2012-11-16 16:39:02

+0

只是遲到比從來沒有:) – 2012-11-19 05:29:51

0

我只想提升@MoJo回答

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 

     @Override 
     public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
       //Your handler 


       return false; 
     } 
}); 
+0

然後,你可以編輯我的答案 – 2014-02-25 08:40:15

0

個人而言,更清潔的解決方案是在開始意圖之前完成LoginActivity,而不是在新活動的捆綁中設置Flags或覆蓋任何方法。嘗試下面的內容,其中Login是您的登錄活動,Home是用戶成功登錄後的第一個活動。

finish(); 
Intent intent = new Intent(Login.this, Home.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(intent); 
0

「我想無論是活性和對話框雙雙收」

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
    finish(); 
    return true; 
    } 
}); 

「或禁用後退按鈕所示的對話框時,」這可以阻止對話框回去。如果動態地創建,添加:

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
    return true; 
    } 
}); 

返回true爲防止此對話框關閉從,它無法通過單擊後退關閉。另外我建議加入:

dialog.setCanceledOnTouchOutside(false); 

什麼會阻止用戶通過單擊外部來解除對話。