2010-01-22 84 views
1

我嘗試,我想叫的情況下,默認功能的布爾值設爲false來覆蓋後退按鈕功能的onkeydown()功能的問題

public boolean onKeyDown(int keyCode, KeyEvent event) { 
     boolean temp = false; 
     if (event.KEYCODE_BACK == keyCode) { 
      System.out.println("Back pressed"); 
      if (isTrue) { 
       //Do something 
       return true; 
      } 
      else return false; 
     } 
     return false; 
    } 

現在,這不正是工作如何文檔狀態。 //Do Something部分執行得很好,但是當isTruefalse我想要默認的後臺功能沒有發生。即時通訊使用SDK 1.5

現在,

  1. 我該如何解決這個問題?

  2. 此問題是否在以後的SDK更新中得到解決?如果不是,有人可以提出相同的錯誤?

回答

3
  1. 如果你想要的默認行爲,連鎖超:

    回報(super.onKeyDown(的keyCode,事件));

  2. 這個錯誤在你的代碼中。此外,對於Android 1.6及更新版本,您最好覆蓋專用的onBackPressed()方法(其中,如果需要默認行爲,則鏈接到超類)。

+0

此外,你應該考慮閱讀本:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html – Samuh 2010-01-23 03:51:21

+0

感謝commonsware。我實際上是按照現在的文檔,它提到返回false將工作。 同樣感謝(對於Samuh)指出了vr1.6的變化,但根據我的要求,我現在必須堅持使用vr1.5。 – 2010-01-23 13:47:16

+0

我可以看到你可以用這種方式解釋它 - 它寫得不是非常好 - 但文檔沒有說明你的想法。 – CommonsWare 2010-01-23 22:02:31