我正在开发一个小应用程序,我一直在完成最后的工作,但遇到了一个我似乎无法解决的逻辑问题。
我有一个功能:
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用于作业,对于我的问题,它的作业并不重要。
我想要完成的是在您第一次打开应用程序时,您会看到两个按钮,一个表示重置,另一个表示启动。当你按下开始它开始游戏,按钮变为退出按钮,这将停止游戏运行。
问题是,我不希望重置按钮可以被点击,直到按下开始按钮,这当前不会发生。在按下启动之前,复位按钮执行其正常功能。
但是: 当您按下启动,然后最终退出时,这会禁用重置按钮,但该过程必须首先发生。我想要的是在按下开始之前禁用重置按钮,然后在按下退出后的持续时间内再次禁用重置按钮。
我希望我能够很好地解释这个问题,提前感谢你们所提供的任何帮助!
答案 0 :(得分:0)
据我了解您的问题,您希望重置按钮在程序开始时无法点击。存档的方法有两种:
您在初始化方法(在程序开头调用的方法)中调用reset.setClickable(false);
。例如,在类构造函数中。
您可以更改重置按钮的样式以禁用可点击。您在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