`
lanhuidong
  • 浏览: 227634 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ActivityGroup中按返回键弹出询问是否退出对话框

阅读更多

今天在写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);
        }
    }

 

有什么不对的地方,还望高手指教

 

分享到:
评论
1 楼 xiaodouya123 2011-08-22  
学习了

相关推荐

    ActivityGroup实现Activit栈

    在Android开发中,ActivityGroup是早些版本API中提供的一种特殊类型的Activity,它允许开发者在一个TabHost或者帧布局(FrameLayout)中嵌套多个Activity,从而实现类似iOS中UINavigationController的堆叠管理器效果...

    activitygroup

    通常,我们期望按下后退键时返回上一个子`Activity`或关闭整个`ActivityGroup`。这可以通过覆盖`onKeyDown`方法来实现。 ```java @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode...

    Android中ActivityGroup的应用

    ActivityGroup的用法,头部和底部为固定布局中间动态显示界面 并在中间布局实现手势滑动效果,自定义SlidingDrawer(抽屉)效果,在ActivityGroup里执行跳转等功能。至于在Android在ActivityGroup里执行跳转详细介绍 ...

    ActvityGrouphe popupwindow实现防UC弹出菜单

    在Android应用开发中,`ActivityGroup`和`PopupWindow`是两种重要的组件,它们分别用于实现复杂的界面管理和灵活的弹出窗口效果。本项目旨在利用这两种技术实现一个类似UC浏览器的弹出菜单功能,允许用户自定义添加...

    使用ActivityGroup管理Activity

    然而,有时开发者可能需要在同一个栈中管理多个Activity,这时`ActivityGroup`就派上了用场。`ActivityGroup`是早期Android版本(Android 2.x)提供的一种特殊类型的`ViewGroup`,允许在同一个`TabHost`或`...

    android ActivityGroup的demo

    通常,我们需要在ActivityGroup中维护一个栈结构,记录子Activity的启动顺序,以便正确处理返回事件。 6. **局限性**:尽管ActivityGroup能实现多层级界面,但其存在一些限制,如内存管理复杂、状态保存不完善、API...

    Android TabHost内嵌ActivityGroup界面管理源码.zip

    按物理的返回键也能返回到上一个界面,根据自己的项目需求改吧。管理类里面大家可以添加相应的方法,以便更好的处理自己的界面,可以添加 增加,和移除界面处理, 这样就可以跳到任何的界面去了。   

    使用ActivityGroup来切换Activity和Layout

    在Android开发中,有时我们需要在一个主界面中实现多个子页面的切换,而这些子页面各自具有独立的功能和布局。在这种情况下,通常我们会选择使用TabHost或者Fragment等组件来实现,但如果你正在使用的是Android早期...

    用ActivityGroup解决TabHost中多个Activity跳转问题

    当按下回退键时,应该先关闭当前子Activity,如果当前子Activity为空,则关闭整个ActivityGroup。 5. **数据传递**:在ActivityGroup中,可以通过LocalActivityManager的getActivity方法获取子Activity实例,然后...

    ActivityGroup之Activity内跳转和外跳转

    例如,当从子Activity调用`finish()`方法时,ActivityGroup应该能够正确处理返回栈,以便用户可以通过按回退键返回到先前的子Activity,而不是退出整个应用。 在处理外跳转时,可能需要重写`onKeyDown()`方法,监听...

    Android开发—使用ActivityGroup来切换Activity和Layout.pdf

    在Android开发中,ActivityGroup是一种特殊类型的Activity,它允许开发者在一个Activity内嵌套其他Activity,实现类似TabHost或Fragment的效果,但这是在Android早期版本(API级别较低)中的一种实现方式。...

    ActivityGroup之activity内跳转和外跳转

    4. **处理返回栈**:当从子Activity返回时,需要在ActivityGroup中处理返回栈。你可以自定义`onBackPressed()`方法,根据当前活动的子Activity决定是否调用`LocalActivityManager`的`finishActivity()`方法,或者...

    ActivityGroup应用实例

    在Android开发中,ActivityGroup是一种特殊的Activity类型,它允许开发者在一个Activity中嵌套其他Activity,形成多层级的界面结构。这个“ActivityGroup应用实例”应该是一个详细的教程,旨在帮助开发者理解如何...

    gridview+activityGroup实现tab分页

    在Android开发中,创建一个具有分页功能的Tab布局是常见的需求,这通常涉及到GridView和ActivityGroup的结合使用。下面将详细解释这两个组件以及如何利用它们实现Tab分页。 首先,`GridView`是Android的一种视图...

    ActivityGroup和GridView实现标签分页

    在Android开发中,ActivityGroup和GridView是两种常用的组件,它们可以协同工作来实现标签分页的效果,这是一种常见的用户界面设计模式,通常用于展示多个类似内容的页面,让用户通过标签进行切换浏览。本篇将深入...

    ActivityGroup框架

    在Android开发中,ActivityGroup是一种特殊的布局管理器,它允许在一个TabHost中嵌套多个Activity。这个框架的设计目的是为了提供更复杂的应用结构,使得在单个Tab内可以切换不同的Activity,而不仅仅是显示单一内容...

    tabhost和ActivityGroup的组合使用

    在Android开发中,TabHost和ActivityGroup是两个关键组件,它们常常被用来构建具有标签页切换功能的应用界面。本文将详细讲解如何将这两个组件结合使用,以实现多Activity间的高效跳转和堆栈管理。 首先,TabHost是...

    TabHost, ActivityGroup 的使用例子

    在Android开发中,TabHost和ActivityGroup是两个重要的组件,它们用于实现复杂的界面布局和交互。TabHost主要用于创建带有标签页的应用界面,而ActivityGroup则允许你在同一个父Activity下管理多个子Activity,使得...

    ActivityGroup

    每个子Activity都会有自己的回退栈,这意味着当用户按下Back键时,会按照启动顺序返回上一个子Activity。 ### 注意事项 虽然ActivityGroup提供了一种方式来实现多层界面,但它的使用有一些限制和潜在问题: - **...

    安卓Android源码——TabHost内嵌ActivityGroup界面管理源码.zip

    在安卓应用开发中,TabHost和ActivityGroup是两种常见的组件,用于实现多页面的导航和管理。本资源“安卓Android源码——TabHost内嵌ActivityGroup界面管理源码.zip”提供了一个实例,帮助开发者理解如何在TabHost中...

Global site tag (gtag.js) - Google Analytics