2012-05-13 17 views
0

我覆蓋了home鍵是這樣的:在搜索界面調用重寫Home鍵

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch (keyCode) { 
    case KeyEvent.KEYCODE_HOME: 
     System.out.println("hello"); 
     break; 
    } 
    return super.onKeyDown(keyCode, event); 
} 


@Override 
public void onAttachedToWindow() { 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

我也創建了搜索界面,如: http://www.edumobile.org/android/android-programming-tutorials/search-interface/

當我點擊搜索硬件按鈕時,搜索界面出現。但同時當我點擊主頁按鈕時,主頁按鈕的重寫方法不會被調用,並且我會回到手機的主屏幕。你能幫我解決嗎?

回答

2

您無法趕上家庭按鈕印刷機,有關詳細信息,請參閱this問題。簡而言之:這是一個系統密鑰,您的應用程序無法自行處理它,因爲它會允許應用程序阻止用戶退出它。

+0

是的,android在幾個鍵上作弊以維持用戶體驗:D –

+0

但我重寫了它,就像你在上面的代碼中看到的那樣,它是完美的。你的意思是,只要我在搜索界面(通過點擊搜索硬件按鈕)就無法解決我目前的問題? – Ali

+2

@Ali:「但是我重寫了它,就像你在上面的代碼中看到的一樣,它完全有效」 - 不,它不。首先,如果它「完美」地工作,你就不會有這個問題。其次,這種特定的技術不再適用於Android 4.0。如果你想控制HOME按鈕,寫一個主屏幕。 – CommonsWare