【问题标题】:What is the proper implementation of the back button press in same activity?在同一活动中按下后退按钮的正确实现是什么?
【发布时间】:2015-04-18 04:03:04
【问题描述】:

我想检测后退按钮。 但是我当前的实现甚至没有检测到后退按钮。

代码:

   @Override
    public boolean onTouch(MotionEvent e, int scaledX, int scaledY) {

        //... OTHER CODE ...
        else if(e.getAction() == MotionEvent.BUTTON_BACK){
            System.out.println("BACK BUTTON PRESSED");
            setCurrentState(new MenuState());
        }
        return true;
    }
}

【问题讨论】:

  • 显示不同的状态?这到底是什么意思
  • 您可以覆盖onBackPressed developer.android.com/reference/android/app/…
  • @Diva 从我当前的视图转到另一个视图
  • 好的,但两者是相同的还是不同的活动? @jssmkp
  • 在同一个@Diva

标签: java android android-activity touch logic


【解决方案1】:

您可以在 Activity 中使用onBackPressed()

@Override
public void onBackPressed() {
    //Do something
}

【讨论】:

    【解决方案2】:

    文档里有写:

    public static final int BUTTON_BACK
    按钮常量:按下返回按钮(鼠标返回按钮)。按下此按钮时,系统可能会向应用程序发送 KEYCODE_BACK 按键。

    您需要从 Activity(而不是从视图)覆盖 onKeyUp 函数:

    public boolean onKeyUp(int keyCode, KeyEvent event) 
    {
        if (keyCode == KeyEvent.KEYCODE_BACK) 
        {
            //todo
        }
    }
    

    【讨论】:

      【解决方案3】:

      onBackPressed()中使用 Intent,如下所示:

          @Override
          public void onBackPressed() 
          {
          Intent BackIntent = new Intent(getApplicationContext(), NewActivity.class);
          startActivityForResult(BackIntent);
          finish();
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 2013-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多