ActvityGroup有多个Activity处理返回退出

来源:互联网 发布:js鼠标放上去显示文字 编辑:程序博客网 时间:2024/06/06 01:45

今天在写android程序时遇到一个问题,一个ActivityGroup包含N个Activity,当点击返回键时询问是否退出程序,开始程序是这样写的:

Java代码 

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中添加如下代码

Java代码  
@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){
            return getParent().onKeyDown(keyCode, event);
        }else{
            return super.onKeyDown(keyCode, event);
        }
    }

 

0 0
原创粉丝点击