Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当所有其他按钮都被禁用时,如何启用某些按钮?_Java_Android - Fatal编程技术网

Java 当所有其他按钮都被禁用时,如何启用某些按钮?

Java 当所有其他按钮都被禁用时,如何启用某些按钮?,java,android,Java,Android,我的游戏活动有16个按钮。加上4个(我将在稍后讨论),此时所有4个都已禁用。现在,每当用户点击这16个按钮中的一个,我都会给它设置一些文本,然后禁用它,这样就不能再使用它了。当所有16个按钮都被单击并禁用时,是否有一种方法可以启用所有这4个按钮?实现您的要求的一种方法就是在代码中留出这样一个案例;如果我了解您的问题与上面发布的内容有关: Button buttonOne = null; //...fourteen buttons Button otherButtonOne = null; //.

我的游戏活动有16个按钮。加上4个(我将在稍后讨论),此时所有4个都已禁用。现在,每当用户点击这16个按钮中的一个,我都会给它设置一些文本,然后禁用它,这样就不能再使用它了。当所有16个按钮都被单击并禁用时,是否有一种方法可以启用所有这4个按钮?

实现您的要求的一种方法就是在代码中留出这样一个案例;如果我了解您的问题与上面发布的内容有关:

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。非常好的主意,我会尝试一下,让你知道。要知道,有很多其他的方法可以实现这一点,最好的答案取决于人。我会这样做,但请确保选择最容易理解的解决方案。如果您需要任何澄清或其他解决方案,请告诉我。