如何在Android应用程序中使用默认后退按钮

时间:2014-05-13 07:29:56

标签: android android-intent

我是android的新手......

我已经创建了一个Android应用程序,在我的主要活动中我添加了该类中的按钮数量。

当用户点击特定按钮时,它会显示其他类(我在视图类中创建了draw-method)

当我点击按钮事件时,会显示相关的视图类&当我点击默认后退按钮时,它将进入MainActivity Class ..这对我来说很好..

现在问题是我想在MainActivity上使用默认后退按钮关闭应用程序 它没有完成。重复调用mainActivity .. 对不起我的英文

我正在使用此代码作为后退按钮 在MainActivity.java

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

   if ((keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0))
       //if ((keyCode == KeyEvent.KEYCODE_BACK && event.KEYCODE_BACK == 1))
   {
       Intent intent=new Intent(getApplicationContext(), MainActivity.class);
      // Intent intent=new Intent();

       startActivity(intent);
       return true;

   }


   return super.onKeyUp(keyCode, event);
}

2 个答案:

答案 0 :(得分:3)

覆盖onBackPressed()活动方法。 为此,而不是keyEventListener。 只要您想要默认后退操作,请使用super.onBackPress();。 如果您想完成活动,请致电finish()

答案 1 :(得分:0)

  1. 在大多数情况下,如果你想要处理"后退按钮"如果您使用onBackPressed
  2. ,会更好
  3. 修复您的问题,无法解决更多信息,因为您应该稍微更改一下逻辑。我的意思是:在第一次" Back"如果再次按下它会退出吗?或者是什么?什么时候申请呢?因为现在,代码执行了您想要的任何操作,并且不会添加任何内容以使默认代码(finish()
  4. 我想到这样的事情

    if (keyCode == KeyEvent.KEYCODE_BACK) {
       // more than one press, so we want to close
       if (event.getRepeatCount() > 1) {
         finish();
       } else { // just one, so open the activity
         Intent intent=new Intent(getApplicationContext(), MainActivity.class);    
         startActivity(intent);
       }
    }
    

    虽然可以工作,但您应该更改设计。后退按钮去" BACK"不要打开新的东西。