我目前在创建的应用上有一个setPressed(true)按钮。当我按下后退按钮时,我也会出现一个AlertDialog框。我注意到,当我按下后退按钮并出现AlertDialog框时,我设置的按钮按下true变为false。我无法理解导致这种情况的原因,因为我的代码中没有任何内容告诉按钮将setPressed更改为false。 如果有人愿意,我可以提供我的代码,但我相信其他原因导致这一点。任何帮助将非常感激。 :)
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exitByBackKey();
return true;
}
return super.onKeyDown(keyCode, event);
}
protected void exitByBackKey() {
if(!instOn){
if(toast != null)
toast.cancel();
AlertDialog alertbox = new AlertDialog.Builder(this).setMessage("Do you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
finish();
System.exit(0);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
// do something when the button is clicked
public void onClick(DialogInterface arg0, int arg1) {
if(!stage1 || !stage2){
button3.setClickable(false);
button3.setPressed(true);
}
}
})
.setNeutralButton("Restart", new DialogInterface.OnClickListener() {
// do something when the button is clicked
public void onClick(DialogInterface arg0, int arg1) {
newGame();
}
})
.show();
//alertbox.setCancelable(false);
}
else{
instOn = false;
trans.transition.reverseTransition(800);
popupWindow.dismiss();
button1.setClickable(true);
button2.setClickable(true);
soundButton.setClickable(true);
}
}