Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 必须按两次后退按钮_Java_Android_Android Intent_Onbackpressed - Fatal编程技术网

Java 必须按两次后退按钮

Java 必须按两次后退按钮,java,android,android-intent,onbackpressed,Java,Android,Android Intent,Onbackpressed,我试图在活动上实现简单的后退按钮以转到上一个活动,但当我调用方法finish()时,出现了一些奇怪的行为-问题是我必须按两次后退按钮?为什么会这样?在back方法中,我只有finish()。如果不实例化一个全新的意图,那么转到先前保存的活动的另一种方法是什么 public void back1 (View view){ this.finish(); } 这是第二次尝试,结果相同: ImageButton buttonback = (ImageButton) findVie

我试图在
活动
上实现简单的
后退按钮
以转到上一个
活动
,但当我调用方法
finish()
时,出现了一些奇怪的行为-问题是我必须按两次
后退
按钮?为什么会这样?在back方法中,我只有
finish()
。如果不实例化一个全新的
意图
,那么转到先前保存的
活动
的另一种方法是什么

  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()

如果您只想让设备返回按钮正常工作,则无需覆盖活动中的onBackPressed方法

如果要在视图中放置自定义按钮并将操作设置回该按钮,则需要将button clicklistener写入该按钮

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

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


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

请显示您的代码您应该在此处发布活动代码Finish不会重新启动当前活动。您的代码中有其他错误,但我们不知道是什么,因为我们猜不到您的代码。您很可能会启动活动两次。按
back
时,您正在完成一个,另一个正在向前移动。检查您的
onCreate
onResume
是否存在任何可能正在使用意图或启动任何活动的内容。活动添加到堆栈中的次数越多,创建和启动活动的次数就越多。如@bonatti所述,检查活动启动代码。检查活动是否正在启动,并提供整个活动代码。。我想你做错了什么。
    backbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
});