Android studio,这个onBackPressed()代码有什么问题?
问题描述:
我用下面的代码关闭后按钮按下后的应用程序。前段时间它工作,但我试图再次使用它,并有:Android studio,这个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之前的括号必须移至代码末尾。然后所有的作品。谢谢。
答
你的第一个问题是你在课堂外实施了你的方法。在java中,方法需要属于class
,interface
或enum
。仔细检查你的括号并将你的方法移动到你的类括号里面。你的第二个问题是你有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() {
// ...
}
}
答
尽量把
super.onBackPressed()
完成()
答
尝试this.finish()
OR
尝试super.onBackPressed();
OR
呼叫NavUtils.navigateUpFromSameTask(this);
,回到先前的屏幕前/活动
其他'onBackPressed'必须'public'的代码看起来很好。它位于哪里? – laalto
任何部分都可能有问题;请检查以下内容;布尔是一个对象包装,而布尔是一个原始数据类型;推翻的法律措施必须得到保护或公开; –
代码是在onCreate()之后的mainactivity中。之后没有别的。如果我删除上面的代码,没问题, – Chab