游戏开始,重置和退出按钮难题

时间:2016-10-23 10:56:27

标签: java android button logic reset

我正在开发一个小应用程序,我一直在完成最后的工作,但遇到了一个我似乎无法解决的逻辑问题。

我有一个功能:

public void quitOrStartGame(View view){
    Button quitStart = (Button)findViewById(R.id.quit_startButton);
    Button reset = (Button)findViewById(R.id.resetButton);
    reset.setClickable(false);

    if (quitStart.getText() == "Quit") {
        gridGame.quit();
        importGrid();
        quitStart.setText("Start");
        reset.setClickable(false);
        } 
    else {
        gridGame.startGame();
        importGrid();
        quitStart.setText("Quit");
        reset.setClickable(true);
    }
}

这是为了启动我的游戏。这是一个5x5的游戏,x和o用于作业,对于我的问题,它的作业并不重要。

我想要完成的是在您第一次打开应用程序时,您会看到两个按钮,一个表示重置,另一个表示启动。当你按下开始它开始游戏,按钮变为退出按钮,这将停止游戏运行。

问题是,我不希望重置按钮可以被点击,直到按下开始按钮,这当前不会发生。在按下启动之前,复位按钮执行其正常功能。

但是: 当您按下启动,然后最终退出时,这会禁用重置按钮,但该过程必须首先发生。我想要的是在按下开始之前禁用重置按钮,然后在按下退出后的持续时间内再次禁用重置按钮。

我希望我能够很好地解释这个问题,提前感谢你们所提供的任何帮助!

2 个答案:

答案 0 :(得分:0)

据我了解您的问题,您希望重置按钮在程序开始时无法点击。存档的方法有两种:

  1. 您在初始化方法(在程序开头调用的方法)中调用reset.setClickable(false);。例如,在类构造函数中。

  2. 您可以更改重置按钮的样式以禁用可点击。您在XML布局中将android:clickable设置为false

答案 1 :(得分:0)

我没有完整的代码,因此我无法确定您何时致电:

quitOrStartGame(View view)

但您需要做的就是在ClickLisetner上的开始/退出按钮上切换重启按钮的可点击状态

   quitStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (quitStart.getText() == "Quit") {
                gridGame.quit();
                importGrid();
                quitStart.setText("Start");
                reset.setClickable(false);
            }
            else {
                gridGame.startGame();
                importGrid();
                quitStart.setText("Quit");
                reset.setClickable(true);
            }
        }
    });

您还应将findViewById移动到仅调用一次的位置。喜欢OnCreate方法。并将按钮保存为全局参数。 https://groups.google.com/forum/#!topic/android-developers/_22Z90dshoM