我的android应用程序中的java类有一个非常奇怪的问题。
我有一些子类扩展了我的抽象类GameDialog
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){
...
}
}
}
PauseDialog类
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();
}
};
}
}
每次我想显示一个对话框时,我都会写下这一行: 新的PauseDialog(GameScene.this,camera,vbom).display();
第一次,它运作良好:显示对话框,用户做出选择并隐藏它。 但第二次,对话框未被隐藏(在用户选择之后)。
我使用调试器来查看发生了什么,结论是:
如果有人可以解释我在做什么......谢谢。
答案 0 :(得分:0)
这是因为gd_visible
是static
。删除静态关键字,它应该工作。静态字段不属于实例,但它们属于该类。