在我的應用程序中,我有一個按鈕,如果用戶單擊屏幕上顯示的文本框 (我使用從可見性設置可見性)。 我遇到的問題是當用戶按下設備上的BACK按鈕時:它關閉我的應用程序。Android後退按鈕
有什麼辦法,當用戶按下返回按鈕比我的代碼將被調用(所以我可以設置可見性GONE)?
在我的應用程序中,我有一個按鈕,如果用戶單擊屏幕上顯示的文本框 (我使用從可見性設置可見性)。 我遇到的問題是當用戶按下設備上的BACK按鈕時:它關閉我的應用程序。Android後退按鈕
有什麼辦法,當用戶按下返回按鈕比我的代碼將被調用(所以我可以設置可見性GONE)?
因爲API 1級以下工作:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Do whatever you want
//AND
//return true to tell the framework you did handle the back key
return true;
}
//This is not the back key, just ask the framework to behave as usual.
return super.onKeyDown(keyCode, event);
}
從API級開始5(安卓2.0),你也可以使用:
@Override
public void onBackPressed() {
// Do something (or nothing) here
return;
}
一個完整的概述,請參閱this android developer blog message 。
用您所需的功能覆蓋onBackPressed()
。
默認實現只是調用finish()
來關閉當前活動。
_注意:_此操作僅適用於Android 2.0及更高版本。 (API等級5) –
是的,忘記了。這就是爲什麼你從我這裏得到一個贊成的原因。 :) – 2011-10-01 14:53:35
public boolean onKeyDown(int keyCode, KeyEvent keyEvent) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Put your code here
}
return true;
}
**小心!**您在這裏無條件地返回true,您恰好取消_every_ keypresses。這是不好的,如果你嘗試使用'EditText' :) –
謝謝,,,你是正確的返回true將取消每個按鍵 –
當我們沒有調用超類方法時,默認完成將不起作用super.onKeyDown(keyCode ,事件)看看我的代碼; –
@ArpitGarg,你的意思是返回'onKeyDown'上面的'false'不會'finish()'Activity? –
謝謝, 我用你的代碼,它工作正常。 – Belgi