【问题标题】:Have to press Back button two times必须按两次返回按钮
【发布时间】:2015-10-05 11:00:37
【问题描述】:

我正在尝试在activity 上实现简单的back button 以转到上一个activity,但是当我调用方法finish() 时发生了一些奇怪的行为 - 问题是我必须按下back 按钮两次?为什么会这样?在后面的方法中,我只有finish()。如果没有instantiate 一个全新的Intent,那么转到以前保存的activity 的另一种方法是什么?

  public void back1 (View view){
    this.finish();
    }

这是第二次尝试,结果相同:

 ImageButton buttonback = (ImageButton) findViewById(R.id.imageButton6);

    buttonback.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed();
        }
    });

【问题讨论】:

  • 请出示您的代码
  • 您应该在此处发布您的活动代码
  • Finish 不会重新启动当前活动。您的代码中还有其他问题,但我们不知道是什么,因为我们无法猜测您的代码。
  • 您很可能开始了两次活动。当按下back 时,您正在完成一个,而另一个正在前进。检查您的 onCreateonResume 是否有任何可能使用意图或开始任何活动的内容
  • Activity 像堆栈一样添加到堆栈中,您创建和启动的活动越多,添加到堆栈的越多。正如@bonatti 所提到的,检查您的活动启动代码。检查它是否正在启动活动两次

标签: java android android-intent onbackpressed


【解决方案1】:

您很可能会开始两次活动。

当你按下时,你正在完成一个,而另一个正在向前。检查您的 onCreate 和 onResume 是否有任何可能使用意图或开始任何活动的内容

【讨论】:

    【解决方案2】:
     @Override
        public void onBackPressed() {
            super.onBackPressed();
        }
    

    将超级调用添加到您的代码中,无需调用 finish() 即可关闭活动

    【讨论】:

      【解决方案3】:

      如果您只想让设备后退按钮起作用,您不需要覆盖 Activity 中的 onBackPressed 方法

      如果您想在视图中放置自定义按钮并将操作设置回该按钮,那么您需要将按钮点击侦听器写入相同

          backbutton.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  finish();
              }
      });
      

      【讨论】:

      • 提供整个活动代码。我假设你做错了什么。
      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      相关资源
      最近更新 更多