如何监控变化的变量

时间:2015-01-12 22:36:45

标签: android

这个问题与调试无关,换句话说,我没有试图监视某个变量的值来验证代码是否正常运行。我有6个按钮可以启用,具体取决于我们将调用X的变量。每个按钮都有一个不同的X阈值,以启用该按钮。例如,如果X至少为50,则启用button1;如果X至少为165,则启用button2,等等。我可以使用asynctask轮询变量X并启用或禁用按钮但是有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

将您的变量添加到类如下:

public class example  {

    private int X;
    public int getX() { return X; }

    public void setX(int x) {
        X = x;
        // When X is set notify your watchers
    }
}

接下来创建一个如下界面:

public interface VariableChangeWatcher {
    public void variableChanged(int value);
}

如果您让班级使用此界面,您可以添加观察者或听众,以了解X的值何时在班级外发生变化:

public class example  {

    VariableChangeWatcher watcher;
    private int X;

    public int getX() { return X; }

    public void setX(int x) {
        X = x;
        // When X is set notify your watchers
        if (watcher != null)
            watcher.variableChanged(x);
    }
}

然后在任何使用example的类中,你只需要监听界面就可以知道X的值何时发生了变化:

public class exampleListener implements VariableChangeWatcher
{
    public exampleListener() {
        example e = new example();
    }

    @Override
    public void variableChanged(int value) {
        // Gets alerted when the X value inside our e variable has changed
    }
}

答案 1 :(得分:0)

使用封装。不要使x变量。使它成为一个类,其中包含一个值。在它上面放置一个setter函数。然后,每当调用setter函数时,让它设置值并启用/禁用所有正确的按钮。这样你就不会忘记在任何地方做到这一点 - 设置它的唯一方法是通过setter方法。