今天在写android程序时遇到一个问题,一个ActivityGroup包含N个Activity,当点击返回键时询问是否退出程序,开始程序是这样写的:
public class MainActivity extends ActivityGroup {
//其他代码……
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示");
builder.setMessage("确定要退出?");
builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
return true;
}else{
return super.onKeyUp(keyCode, event);
}
}
}
结果一按返回键,程序就退出了。
后来经过查找资料,应该修改为捕获onKeyDown事件
然后需要在子activity中添加如下代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return getParent().onKeyDown(keyCode, event);
}else{
return super.onKeyDown(keyCode, event);
}
}
有什么不对的地方,还望高手指教
分享到:
相关推荐
在Android开发中,ActivityGroup是早些版本API中提供的一种特殊类型的Activity,它允许开发者在一个TabHost或者帧布局(FrameLayout)中嵌套多个Activity,从而实现类似iOS中UINavigationController的堆叠管理器效果...
通常,我们期望按下后退键时返回上一个子`Activity`或关闭整个`ActivityGroup`。这可以通过覆盖`onKeyDown`方法来实现。 ```java @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode...
ActivityGroup的用法,头部和底部为固定布局中间动态显示界面 并在中间布局实现手势滑动效果,自定义SlidingDrawer(抽屉)效果,在ActivityGroup里执行跳转等功能。至于在Android在ActivityGroup里执行跳转详细介绍 ...
在Android应用开发中,`ActivityGroup`和`PopupWindow`是两种重要的组件,它们分别用于实现复杂的界面管理和灵活的弹出窗口效果。本项目旨在利用这两种技术实现一个类似UC浏览器的弹出菜单功能,允许用户自定义添加...
然而,有时开发者可能需要在同一个栈中管理多个Activity,这时`ActivityGroup`就派上了用场。`ActivityGroup`是早期Android版本(Android 2.x)提供的一种特殊类型的`ViewGroup`,允许在同一个`TabHost`或`...
通常,我们需要在ActivityGroup中维护一个栈结构,记录子Activity的启动顺序,以便正确处理返回事件。 6. **局限性**:尽管ActivityGroup能实现多层级界面,但其存在一些限制,如内存管理复杂、状态保存不完善、API...
按物理的返回键也能返回到上一个界面,根据自己的项目需求改吧。管理类里面大家可以添加相应的方法,以便更好的处理自己的界面,可以添加 增加,和移除界面处理, 这样就可以跳到任何的界面去了。
在Android开发中,有时我们需要在一个主界面中实现多个子页面的切换,而这些子页面各自具有独立的功能和布局。在这种情况下,通常我们会选择使用TabHost或者Fragment等组件来实现,但如果你正在使用的是Android早期...
当按下回退键时,应该先关闭当前子Activity,如果当前子Activity为空,则关闭整个ActivityGroup。 5. **数据传递**:在ActivityGroup中,可以通过LocalActivityManager的getActivity方法获取子Activity实例,然后...
例如,当从子Activity调用`finish()`方法时,ActivityGroup应该能够正确处理返回栈,以便用户可以通过按回退键返回到先前的子Activity,而不是退出整个应用。 在处理外跳转时,可能需要重写`onKeyDown()`方法,监听...
在Android开发中,ActivityGroup是一种特殊类型的Activity,它允许开发者在一个Activity内嵌套其他Activity,实现类似TabHost或Fragment的效果,但这是在Android早期版本(API级别较低)中的一种实现方式。...
4. **处理返回栈**:当从子Activity返回时,需要在ActivityGroup中处理返回栈。你可以自定义`onBackPressed()`方法,根据当前活动的子Activity决定是否调用`LocalActivityManager`的`finishActivity()`方法,或者...
在Android开发中,ActivityGroup是一种特殊的Activity类型,它允许开发者在一个Activity中嵌套其他Activity,形成多层级的界面结构。这个“ActivityGroup应用实例”应该是一个详细的教程,旨在帮助开发者理解如何...
在Android开发中,创建一个具有分页功能的Tab布局是常见的需求,这通常涉及到GridView和ActivityGroup的结合使用。下面将详细解释这两个组件以及如何利用它们实现Tab分页。 首先,`GridView`是Android的一种视图...
在Android开发中,ActivityGroup和GridView是两种常用的组件,它们可以协同工作来实现标签分页的效果,这是一种常见的用户界面设计模式,通常用于展示多个类似内容的页面,让用户通过标签进行切换浏览。本篇将深入...
在Android开发中,ActivityGroup是一种特殊的布局管理器,它允许在一个TabHost中嵌套多个Activity。这个框架的设计目的是为了提供更复杂的应用结构,使得在单个Tab内可以切换不同的Activity,而不仅仅是显示单一内容...
在Android开发中,TabHost和ActivityGroup是两个关键组件,它们常常被用来构建具有标签页切换功能的应用界面。本文将详细讲解如何将这两个组件结合使用,以实现多Activity间的高效跳转和堆栈管理。 首先,TabHost是...
在Android开发中,TabHost和ActivityGroup是两个重要的组件,它们用于实现复杂的界面布局和交互。TabHost主要用于创建带有标签页的应用界面,而ActivityGroup则允许你在同一个父Activity下管理多个子Activity,使得...
每个子Activity都会有自己的回退栈,这意味着当用户按下Back键时,会按照启动顺序返回上一个子Activity。 ### 注意事项 虽然ActivityGroup提供了一种方式来实现多层界面,但它的使用有一些限制和潜在问题: - **...
在安卓应用开发中,TabHost和ActivityGroup是两种常见的组件,用于实现多页面的导航和管理。本资源“安卓Android源码——TabHost内嵌ActivityGroup界面管理源码.zip”提供了一个实例,帮助开发者理解如何在TabHost中...