看板 AndroidDev 關於我們 聯絡資訊
使用機型是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