- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个 java Activity : MainActivity 是您打开应用程序时的第一个屏幕。另外两个是PlayActivity和GuessActivity我在 Play 和 Guess Activity 中覆盖了 onBackPressed() 方法:这是代码:
在 PlayAcitvity 中:
@Override
public void onBackPressed() {
final Dialog mainquestion = new Dialog(PlayActivity.this);
mainquestion.setContentView(R.layout.dialog_mainmenu);
mainquestion.setCanceledOnTouchOutside(false);
Button yes = (Button) mainquestion.findViewById(R.id.yes);
Button no = (Button) mainquestion.findViewById(R.id.no);
yes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent backtomain = new Intent(PlayActivity.this, MainActivity.class);
PlayActivity.this.startActivity(backtomain);
}
});
no.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mainquestion.dismiss();
}
});
mainquestion.show();
}
在 GuessActivity 中:
@Override
public void onBackPressed() {
final Dialog mainquestion = new Dialog(GuessActivity.this);
mainquestion.setContentView(R.layout.dialog_mainmenu);
mainquestion.setCanceledOnTouchOutside(false);
Button yes = (Button) mainquestion.findViewById(R.id.yes);
Button no = (Button) mainquestion.findViewById(R.id.no);
yes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent backtomain = new Intent(GuessActivity.this, MainActivity.class);
GuessActivity.this.startActivity(backtomain);
}
});
no.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mainquestion.dismiss();
}
});
mainquestion.show();
}
在 MainActivity 中我放了这个:
public void onBackPressed() {
super.onBackPressed();
}
我的目标是当我点击后退按钮并且我在播放或猜测 Activity 中时,将出现一个对话框。我对此没有问题,它运行良好。我的问题是当我在第一个屏幕上时,当我点击后退按钮时,它会转到 PlayActivity 并出现 PlayActivity 的对话框。我只想让 MainActivity 中的 onBackPressed 方法作为默认方法工作。
最佳答案
无需在 GuessActivity
和 PlayAcitvity
上的 yes 按钮中启动另一个 Activity ,只需调用 finish() 或 super.onBackPressed();
方法
所以你的代码必须是:
yes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
YourDialog.dismiss();
super.onBackPressed(); // or finish()
}
});
关于Android dev : MainActivity's onBackPressed method uses other activitiy's onBackPressed method, 不是默认值。我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23335723/
我有三个 java Activity : MainActivity 是您打开应用程序时的第一个屏幕。另外两个是PlayActivity和GuessActivity我在 Play 和 Guess Act
我是一名优秀的程序员,十分优秀!