覆盖活动中的后退按钮操作

时间:2010-11-02 04:48:40

标签: android override back-button

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

        @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);
        }

现在我面临一个奇怪的问题, 我在当前的Activity上有一个编辑文本。 在编辑时我正试图通过按下后面来关闭虚拟键盘 按钮。 我的申请完成...... 但我只想关闭键盘而不是Avtivity .. 有什么建议可以解决我的问题..?

提前致谢, Tanmay


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);
    }

但没有结果。 任何建议!!

2 个答案:

答案 0 :(得分:4)

似乎你错过了捕获后面密钥代码的if语句。试试这个:

    @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);
    }

答案 1 :(得分:0)

可能还有一个解决方案,我们可以这样做......

我在xml中有id buttonBack的ImageButton 我在btnBack上添加了一个OnClickListener

在public void onClick函数中,我调用了一个类的intent,它有另一个布局,可能是前一个类...希望这适用于所有...谢谢。

ImageButton btnBack = (ImageButton)this.findViewById(R.id.buttonBack);
    btnBack.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
        Intent myIntent = new Intent(view.getContext(), Your.class);
                    startActivityForResult(myIntent, 0);

        }
    });