出处
正文
先说一下项目结构
-- MainActivity.java |- Activity0.java |- Activity1.java
MainActivity.java 为主文件.内含Activity0.java 和 Activity1.java 两个Activity在每个Activity 下生成onKeyDown()
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println(this.getLocalClassName()); return super.onKeyDown(keyCode, event); }
在虚拟机测试一下, 发觉只有Activity0 或者Activity1下的onKeyDown() 执行, 而MainActivity 下的就不执行!这不是我想要的, 我需要Activity0 和 Activity1 都统一运行同一代码, 避免代码重复.
Google 了很多资料,
有人说ViewPager.setFocusable(false); (这个不行)
有人说onBackPressed() ; (这个效果也是一样的)
最后我选择了,这样编写
MainActivity.java依旧
Activity0.java/Activity1.java:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println(this.getLocalClassName()); super.onKeyDown(keyCode, event); return false; }
这样,MainActivity 下的onKeyDown()就会执行了.