最近使用TabActivity,按下返回键却发现onKeyDown方法根本没有被调用,Google之,有人说需要在每个子Activity中实现相应的监听,无奈过于麻烦。
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- exit();
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
具体的原因没有去深究,最后找到了解决的方法,参考:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
在dispatchKeyEvent中处理Key事件,注意没有处理的键最后要调用super.dispatchKeyEvent(event);以免其他键得不到系统处理,代码如下:
- @Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
- if (event.getAction() == KeyEvent.ACTION_DOWN
- && event.getRepeatCount() == 0) {
- exit();
- return true;
- }
- }
- return super.dispatchKeyEvent(event);
- }
本文出自 “超越梦想” 博客,请务必保留此出处http://breezy.blog.51cto.com/2400264/612709
分享到:
相关推荐
总结来说,正确处理Android中返回键的监听需要开发者对Activity生命周期中的事件处理方法有一个清晰的认识,同时了解并正确使用onKeyDown()、dispatchKeyEvent()和onBackPressed()这三个关键的方法。对于特殊情况,...
在TabActivity中,每个Intent对应一个Activity,当用户点击某个标签时,系统会通过这个Intent启动相应的Activity。 4. **ActivityGroup**:在TabActivity的实现中,ActivityGroup扮演了一个特殊的角色。它是...
在分析`TabActivity`时,通常会涉及对`TabHost`和`TabSpec`的源码阅读,理解它们如何处理点击事件,如何加载和切换`Activity`。这对于深入理解Android的Activity管理和生命周期至关重要。同时,使用工具如Android ...
在Android应用开发中,`TabActivity`曾是实现标签页切换的主要方式,但自API 17之后,它已被弃用。现在,开发者通常使用`Fragment`和`ViewPager`等组件来实现类似的功能,这既符合最新的Android设计指南,也能提供更...
在Android开发中,`TabActivity`是早期用来创建带有选项卡式导航的应用界面的一个关键组件。这个组件允许用户通过在不同的Tab之间切换来浏览多个视图或者内容区域。`TabActivity`结合了`TabHost`和`TabWidget`,使得...
在Android应用开发中,`TabActivity`是一种常见的用于创建多标签界面的设计模式。它允许用户在不同的标签之间切换,每个标签通常对应一个独立的功能模块。然而,随着Android SDK的更新,`TabActivity`已被废弃,...
Android 开发中,TabActivity 已经被废除,而使用 ActivityGroup 来代替 TabActivity,可以更加自由灵活,少很多限制和依赖。ActivityGroup 是 Google 提供的一个非常优秀的 API,但它需要做稍微复杂的重写才能用...
在TabActivity中使用Fragment,可以创建更灵活、可定制的用户界面,每个Tab下的内容都可以由一个独立的Fragment来承载。 TabActivity在早期的Android版本中被广泛使用,它提供了一个容器来显示多个Tab,每个Tab通常...
在TabActivity中,我们需要设置TabHost并添加对应的TabSpec(标签规范),每个TabSpec对应一个页面或Activity。 1. **初始化TabHost** - 在布局XML文件中,为TabHost定义一个根元素`<TabHost>`,并设置其ID为`...
在Android开发中,`TabActivity`是早期API版本中用于实现多标签页切换的一种方式。本文将深入探讨`TabActivity`的使用,以及如何通过源码理解和应用它,同时也会介绍一些相关的工具来辅助开发。 `TabHost`是`...
但为了理解这个旧的用法,我们将讨论如何在TabActivity中嵌套另一个Tab。 1. **TabActivity的简介** TabActivity是Android早期API中的一个特殊的Activity,它允许开发者在同一个界面上创建多个Tab,每个Tab可以...
在Android开发中,`TabActivity`是用于创建带有选项卡导航的应用程序的一种方式。它允许用户通过滑动或点击选项卡在多个视图之间切换,提供了丰富的用户体验。本篇文章将详细解析如何使用`TabActivity`实现滑动翻页...
在Android开发中,ListActivity和TabActivity是两个非常重要的组件,它们帮助开发者构建用户界面,提供数据展示和交互的功能。本文将深入探讨这两个组件的概念、用法以及它们在实际项目中的应用。 首先,我们来了解...
在Android开发中,"切换卡"通常指的是TabActivity或者使用Fragment和TabLayout实现的界面切换效果,这是一种常见的用户界面设计,用于展示多个相关的视图或功能。本篇将详细讲解如何在Android应用中使用TabActivity...
在Android开发中,`TabActivity`是早期版本中用于实现标签栏切换的一种方式,它可以创建一个带有多个选项卡的活动,每个选项卡对应一个单独的`Activity`或`Fragment`。然而,`TabActivity`在Android API Level 13...
TabActivity是Activity的子类,它通过集成TabHost和TabWidget来实现选项卡式布局。在Android的早期版本中,开发者通常会使用TabActivity来创建多页面应用,每个选项卡对应一个单独的Activity或Intent。这样做可以...
在Android开发中,TabActivity是早期用于实现分页视图的一种方式,它允许用户通过不同的Tab切换不同的页面。本文将详细讲解如何在Android应用中使用TabActivity实现分页功能,并结合源码分析其工作原理。 首先,让...
6. **MainActivity**: 主Activity通常是`TabActivity`的实现,负责初始化`TabHost`,设置标签和内容,并可能处理点击事件。 7. **事件监听器**: 为了响应用户点击标签,通常会设置`TabHost.OnTabChangeListener`,...