Android studio,这个onBackPressed()代码出了什么问题?

时间:2017-10-28 16:19:34

标签: android onbackpressed

在按下后退按钮后,我使用下面的代码关闭应用程序。前段时间它有用,但我试图再次使用它并且:

错误:(88,13)错误:预期的类,接口或枚举。

如果我删除此代码应用可以构建,我不知道哪里有问题?

以下MainActivity onBackPressed已实施:

package com.example.chab.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.os.Handler;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.squareup.picasso.Picasso;

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView image = (ImageView) findViewById(R.id.a);
    ImageView image1 = (ImageView) findViewById(R.id.b);
    ImageView image2 = (ImageView) findViewById(R.id.c);
    ImageView image3 = (ImageView) findViewById(R.id.d);
    ImageView image4 = (ImageView) findViewById(R.id.e);
    ImageView image5 = (ImageView) findViewById(R.id.f);
    ImageView image6 = (ImageView) findViewById(R.id.g);

    Picasso.with(this).load("http:/1.jpeg").into(image);
    Picasso.with(this).load("http://1.jpeg").into(image1);
    Picasso.with(this).load("http://1.jpeg").into(image2);
    Picasso.with(this).load("http://1.jpeg").into(image3);
    Picasso.with(this).load("http://1.jpeg").into(image4);
    Picasso.with(this).load("http://1.jpeg").into(image5);
    Picasso.with(this).load("http://1.jpeg").into(image6);

    Button btnOne = (Button) findViewById(R.id.Btn);
    btnOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            Intent intent = new Intent(getApplicationContext(), Activitydwa.class);
            startActivity(intent);
        }
    });


}
}  //THIS BRACKET MUST BE MOVED TO THE END OF CODE!

private Boolean exit = false;
@Override
private void super.onBackPressed() {
    if (exit) {
        this.finish(); // finish activity
    } else {
        Toast.makeText(this, "Press Back again to Exit.", Toast.LENGTH_SHORT).show();
        exit = true;
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                exit = false;
            }
        }, 3 * 1000);
    }
}

编辑: 解决了。 Boollean之前的Bracket必须移动到代码的末尾。一切都行。谢谢。

3 个答案:

答案 0 :(得分:0)

尝试放

super.onBackPressed()

在结束前()

答案 1 :(得分:0)

尝试this.finish()

尝试super.onBackPressed();

致电NavUtils.navigateUpFromSameTask(this);以返回上一个屏幕/活动

答案 2 :(得分:0)

您的第一个问题是您的方法是在课外实施的。在java中,方法需要属于classinterfaceenum。仔细检查括号并将方法移到类括号内。您的第二个问题是onBackPressed方法的签名错误。请参阅以下代码:

这就是你所拥有的:

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // ...
  }
}

private Boolean exit = false;

@Override
private void super.onBackPressed() {
  // ...
}

这就是你需要的:

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // ...
  }

  private Boolean exit = false;

  @Override
  public void onBackPressed() {
    // ...
  }
}