作者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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1490957900.A.AD5.html
※ 编辑: gcobc12632 (61.222.191.73), 03/31/2017 19:03:43
1F:推 roy870075: 好奇问,为什麽要ovrride onBackPress? 03/31 22:43
2F:→ gcobc12632: 复写返回键的功能不是这样写吗?还是我哪里理解错误了 04/01 13:35
3F:→ y3k: 你去实验一下override onKeyDown() 我觉得onBackPress()只在 04/01 14:11
4F:→ y3k: focus在contentView的时候会触发 04/01 14:11
5F:→ y3k: 另外试着对ListView的focusable设false看看 04/01 14:13
6F:→ gcobc12632: 改写成override onKeyDown之後就正常了 看来之後还是 04/05 13:14
7F:→ gcobc12632: 不要用ovrride onBackPress好了 问题一堆 感谢回应 04/05 13:14