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