Java 当所有其他按钮都被禁用时,如何启用某些按钮?
我的游戏活动有16个按钮。加上4个(我将在稍后讨论),此时所有4个都已禁用。现在,每当用户点击这16个按钮中的一个,我都会给它设置一些文本,然后禁用它,这样就不能再使用它了。当所有16个按钮都被单击并禁用时,是否有一种方法可以启用所有这4个按钮?实现您的要求的一种方法就是在代码中留出这样一个案例;如果我了解您的问题与上面发布的内容有关:Java 当所有其他按钮都被禁用时,如何启用某些按钮?,java,android,Java,Android,我的游戏活动有16个按钮。加上4个(我将在稍后讨论),此时所有4个都已禁用。现在,每当用户点击这16个按钮中的一个,我都会给它设置一些文本,然后禁用它,这样就不能再使用它了。当所有16个按钮都被单击并禁用时,是否有一种方法可以启用所有这4个按钮?实现您的要求的一种方法就是在代码中留出这样一个案例;如果我了解您的问题与上面发布的内容有关: Button buttonOne = null; //...fourteen buttons Button otherButtonOne = null; //.
Button buttonOne = null;
//...fourteen buttons
Button otherButtonOne = null;
//...other four buttons
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupButtons();
}
private void setupButtons()
{
buttonOne.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//..Whatever else you do with button.
if(allButtonsAreDisabled())
{
enableOtherFourButtons();
}
}
});
//...
}
private boolean allButtonsAreDisabled()
{
if(!buttonOne.isEnabled()) // && !buttonTwo.isEnabled() && ...
{
return true;
}
else
return false;
}
private void enableOtherFourButtons()
{
otherButtonOne.setEnabled(true);
//...
}
下面是一个快速的方法:
public class example{
int activeButtons = 16;
public void onCreate(Bundle savedInstanceState){
//initialize
}
/**
* This is your onClick method
*/
public void click(View v){
v.setEnabled(false);
activeButtons--;
if(activeButtons == 0){
enable();
}
}
/**
* This will enable your four buttons
*/
public void enable(){
//Get references to your buttons here
Button b1 = ...;
Button b2 = ...;
Button b3 = ...;
Button b4 = ...;
b1.setEnabled(true);
b2.setEnabled(true);
b3.setEnabled(true);
b4.setEnabled(true);
}
}
当然,每次通过单个函数调用禁用这16个按钮中的一个时,您都可以检查一个条件。该函数调用可以检查每个按钮的启用功能。您描述的是一个通用状态机,所以是的,有一种方法可以在任何计算机上实现。你用什么来开发这个游戏,你试过什么代码?@John我什么都没试过,因为我不知道如何解决这个问题。你能再澄清一下你的问题吗,发布一些代码会有帮助的好吧,我可以在这里发布我的整个游戏类,但没有任何关于这个问题的消息,因为我什么都没试过,因为我不知道从哪里开始解决这个问题。我使用switch语句而不是onClickListener。如果它有助于在GitHub上完成这个类,那就看看它的外观。不管怎样,它只是一种获得想法的方法,而不是您必须使用的方法。我决定使用另一种解决方案。无论如何,谢谢你的efort。非常好的主意,我会尝试一下,让你知道。要知道,有很多其他的方法可以实现这一点,最好的答案取决于人。我会这样做,但请确保选择最容易理解的解决方案。如果您需要任何澄清或其他解决方案,请告诉我。