作者gcobc12632 (Ted)
看板AndroidDev
標題[問題] 按了返回鍵不會返回上一頁
時間Fri Mar 31 18:58:17 2017
使用機型是SONY C5,聽說HTC跟紅米也有出現過這樣的問題
(三星TAB S2、Nexus 6P卻完全沒發生過)
情況是:
在A Activity內點擊一個ArrayAdapter
觸發OnItemClickListener之後跳到B Activity
在B Activity按返回鍵會跳回A Activity
然後在A Activity按返回鍵就會失效了
返回鍵的code我是這樣寫:
@Override
public void onBackPressed() {
finish();
}
然後當返回鍵失效的時候,LOG裡面會顯示這幾行:
Key down dispatch to android.widget.GridView{
9933223 VFED.VC. .F....ID 24,48-1056,1347
#7f1001d6 app:id/gridView},
event = KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_BACK, scanCode=0,
metaState=0, flags=0x48, repeatCount=0, eventTime=7979073, downTime=7979073,
deviceId=-1, source=0x101 }
Key up dispatch to android.widget.GridView{
9933223 VFED.VC. .F....ID 24,48-1056,1347
#7f1001d6 app:id/gridView},
event = KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BACK, scanCode=0,
metaState=0, flags=0x48, repeatCount=0, eventTime=7979160, downTime=7979073,
deviceId=-1, source=0x101 }
Tracking Key Up, activity is resumed: false
會不會是因為我在Activity裡面有寫這段的關係啊?
@Override
protected void onRestart() {
super.onRestart();
recreate();
}
--
By ALi Project グランギニョル
仏語で「操り人形」または「人形劇」を指す。
普通は19世紀末のパリに実在した劇場「グラン・ギニョル座」を指す。
この劇場では人形の代わりに人間が出演し,残酷でエロチックな恐怖劇を演じた。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.191.73
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1490957900.A.AD5.html
※ 編輯: gcobc12632 (61.222.191.73), 03/31/2017 19:03:43
推 roy870075: 好奇問,為什麼要ovrride onBackPress? 03/31 22:43
→ gcobc12632: 複寫返回鍵的功能不是這樣寫嗎?還是我哪裡理解錯誤了 04/01 13:35
→ y3k: 你去實驗一下override onKeyDown() 我覺得onBackPress()只在 04/01 14:11
→ y3k: focus在contentView的時候會觸發 04/01 14:11
→ y3k: 另外試著對ListView的focusable設false看看 04/01 14:13
→ gcobc12632: 改寫成override onKeyDown之後就正常了 看來之後還是 04/05 13:14
→ gcobc12632: 不要用ovrride onBackPress好了 問題一堆 感謝回應 04/05 13:14