[問題] 按了返回鍵不會返回上一頁

看板AndroidDev作者 (Ted)時間7年前 (2017/03/31 18:58), 7年前編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
使用機型是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

03/31 22:43, , 1F
好奇問,為什麼要ovrride onBackPress?
03/31 22:43, 1F

04/01 13:35, , 2F
複寫返回鍵的功能不是這樣寫嗎?還是我哪裡理解錯誤了
04/01 13:35, 2F

04/01 14:11, , 3F
你去實驗一下override onKeyDown() 我覺得onBackPress()只在
04/01 14:11, 3F

04/01 14:11, , 4F
focus在contentView的時候會觸發
04/01 14:11, 4F

04/01 14:13, , 5F
另外試著對ListView的focusable設false看看
04/01 14:13, 5F

04/05 13:14, , 6F
改寫成override onKeyDown之後就正常了 看來之後還是
04/05 13:14, 6F

04/05 13:14, , 7F
不要用ovrride onBackPress好了 問題一堆 感謝回應
04/05 13:14, 7F
文章代碼(AID): #1OtZPChL (AndroidDev)
文章代碼(AID): #1OtZPChL (AndroidDev)