2011-09-26 242 views
7

有關我爲什麼嘗試這樣做的一些信息:我正在使用ActivityGroups從tabHost活動中打開一個活動,並將新活動保留在選項卡下。我得到的那部分。但是在新的活動中,如果我使用後退按鈕,它會將我帶出標籤活動,因此我必須點擊幾下才能返回到原來的位置。忽略Android後退按鈕

有沒有辦法將後退按鈕設置爲特定的活動而不是殺死當前的活動窗口?

+0

http://stackoverflow.com/q/2459848/632951 – Pacerier

回答

5

一般來說,我會建議不要這樣做,因爲它會破壞用戶體驗。用戶期望後退按鈕殺死整個窗口,特別是因爲您使用的是tabhost。對於用戶來說,整個羣組(標籤和全部)是他想要在點擊後退按鈕時退出的單個活動。

如果您仍想這樣做,請參閱#onBackPressed()。當活動檢測到用戶按下後退鍵時調用它。默認是完成活動,但你可以讓它做任何你想要的。我建議小心謹慎。

您可能會從here找到一些靈感。

+0

我同意不想破壞用戶體驗。稍微多思考一下,雖然這會很方便,甚至在我的情況下也是有意義的。我將不得不想出另一種來回的方法。 – ryandlf

7

我相信你應該能夠做這樣的事情:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     // start new Activity here 
    } 
    return super.onKeyDown(keyCode, event); 
} 

但覆蓋後退按鈕的預期功能是不可取的。

+0

我認爲這是實現導航的好方法。只要視覺方法對用戶是透明的,並且用戶可以在他到達導航*開始時觸發默認的後退點擊行爲(可能通過雙擊 - 如果用戶點擊放慢,您可以顯示吐司提示) – Knickedi

+0

爲我工作謝謝 –