我的 android 应用程序中的 java 类有一个非常奇怪的问题。
我有一些子类扩展了我的抽象类 GameDialog
游戏对话类
public abstract class GameDialog extends Sprite
{
private static boolean gd_visible = false;
protected GameDialog(GameScene scene, Camera camera, VertexBufferObjectManager pSpriteVertexBufferObject){
...
}
public boolean display(){
if(!GameDialog.gd_visible) {
...
}
}
protected boolean hide(){
if(GameDialog.gd_visible){
...
}
}
}
暂停对话类
public class PauseDialog extends GameDialog {
public PauseDialog(GameScene scene, Camera camera, VertexBufferObjectManager pSpriteVertexBufferObject) {
super(scene, camera, pSpriteVertexBufferObject);
...
final ButtonSprite play_button = new ButtonSprite(...);
play_button.setOnClickListener(setPlayButtonListener());
}
private OnClickListener setPlayButtonListener() {
return new OnClickListener() {
@Override
public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) {
hide();
}
};
}
}
每次我想显示一个对话框时,我都会写下这一行: new PauseDialog(GameScene.this, camera, vbom).display();
第一次,它运行良好:显示对话框,用户做出选择并隐藏。但是第二次,对话框没有隐藏(在用户选择之后)。
我使用调试器查看发生了什么,得出的结论是:
- 在第二个实例中,它调用第一个实例的 hide() 方法!
如果有人可以向我解释它在做什么...谢谢。