2012-03-27 54 views
0

我需要捕捉事件,當我的應用程序顯示對話框,並按下設備的後退按鈕。當顯示對話框/微調列表時,抓住android的後退按鈕按下事件?

那麼它不是一個對話框。這是我的微調列表的下拉列表。

我tryed:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    { 

    Toast myToast = Toast.makeText(getApplicationContext(), "back putton pressed", 1); 
    myToast.show(); 

    } 

    // Call super code so we dont limit default interaction 
    super.onKeyDown(keyCode, event); 

    return true; 
} 

沒有奏效。

我也tryed:

public void onBackPressed() 
{ 


    Toast myToast = Toast.makeText(getApplicationContext(), "back putton pressed", 1); 
    myToast.show(); 

} 

我即使壓倒一切tryed這一點。 所以沒有上述解決方案爲我工作。我在stackoverflow上找到了這兩個,但由於某些原因,他們不適合我。 當然,他們的工作時,現在有對話顯示,但什麼時候......他們沒有運行。

任何想法?

所以我

+0

什麼也沒有用第一代碼片段工作? – Mayank 2012-03-27 06:57:45

回答

3

嘗試

if (keyCode == KeyEvent.KEYCODE_BACK) 
{ 

    Toast myToast = Toast.makeText(getApplicationContext(), "back putton pressed", 1); 
    myToast.show(); 
    return true; 
} 
+0

爲什麼你複製相同的代碼,如果我標記它不工作? – 2012-03-27 09:33:36

+2

返回true應該在KEYCODE_BACK – user936414 2012-03-27 09:39:27

2

看到這個

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     //Handle the back button 
     if(keyCode == KeyEvent.KEYCODE_BACK) { 
      //write your code... 
     } 
    } 
+0

爲什麼你複製相同的代碼,如果我標記它不工作? – 2012-03-27 09:33:24

1

嘗試使用解僱聽衆。可以通過按下按鈕或返回鍵並使用此偵聽器來解除對話框,您可以知道用戶是否按下了按鈕或返回鍵(您可以偵聽對話框上的onClick偵聽器以捕獲對話框的按鈕「單擊」)。

+0

它是一個spinners下拉菜單我如何添加dismiss監聽器? – 2012-03-27 09:35:21

3

的一般方法來檢測一個對話框已被取消(後退按鈕按下)是實施OnCancelListener,真的不知道,如果它適用於紡織,但!

2

試試這個...

public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if (keyCode == KeyEvent.KEYCODE_BACK) 
     { 

     Toast myToast = Toast.makeText(getApplicationContext(), "back putton pressed", 1); 
     myToast.show(); 
    new Handler().postDelayed(new Runnable{ 
    public void run(){ 
       finish(); 
     } 
    }, 1000); 
     } 
    else{ 
     // Call super code so we dont limit default interaction 
     super.onKeyDown(keyCode, event); 
    } 

     return true; 
    } 
+0

裏面我不能等待事件1秒後:( – 2012-03-27 09:34:17

相關問題