在活动中覆盖后退按钮动作 [英] Overriding Back Button Action in Activity

查看:101
本文介绍了在活动中覆盖后退按钮动作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚在代码中覆盖了我的后退按钮

I have just overide my back button in my code like this

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {

                return true;
            }
            return super.onKeyDown(keyCode, event);
        }

        @Override
        public boolean onKeyUp(int keyCode, KeyEvent event)
          {

                 {
                       startActivity(new  Intent(context, MainDialog.class));
                       finish();

                return true;
            }
            return super.onKeyUp(keyCode, event);
        }

现在我面临一个奇怪的问题, 我对当前活动有一个编辑文本. 在编辑时,我试图通过按回车键来关闭虚拟键盘 按钮 . 我的申请完成了... 但是我只想关闭键盘而不是Avtivity .. 有解决我问题的建议吗??

Now I am facing a weird problem, I have a edit text on the current Activity. At the time of editing when I am trying to close the virtual keyboard by pressing the back button . My Application finishes... But I just want to close the keyboard not the Avtivity.. Any suggestion to solve my issue..?

预先感谢, 坦美

I have tried both 

       @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) 
        {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

               startActivity(new  Intent(context, MainDialog.class));
               finish();
               return true;
        }
        return super.onKeyUp(keyCode, event);
    }

        @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) 
        {
        if (keyCode == KeyEvent.KEYCODE_BACK ) {

               startActivity(new  Intent(context, MainDialog.class));
               finish();
               return true;
        }
        return super.onKeyUp(keyCode, event);
    }

但是没有结果. 有什么建议!

But no result. Any suggestion!!

推荐答案

似乎您错过了捕获后退键代码的if语句.试试这个:

It seems you missed the if statement that catches the back key code. Try this:

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            startActivity(new  Intent(context, MainDialog.class));
            finish();
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }

这篇关于在活动中覆盖后退按钮动作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆