变量不更新值

时间:2012-11-14 17:17:26

标签: android class variables

这很奇怪,也许有人可以帮忙解决这个问题。我有两个类,当我尝试从主类访问变量时,value总是0.0

MAIN CLASS

public class MainActivity extends Activity {
  public float angleCurrent;
  - do something whith angleCurrent
  //System.out.println(angleCurrent);    - I get right values
}

SECOND CLASS

public class SecondClass extends ImageView {
  public float curAngle = new MainActivity().angleCurrent;
  //System.out.println(curAngle);   - I get 0.0 all the time
}

代码只是插图。

2 个答案:

答案 0 :(得分:1)

这里有几个大问题。首先,为什么会发生这种行为:

您没有从MainActivity内的第一个SecondClass实例访问该变量,您创建了一个新的MainActivity的第二个实例,因此您可以访问不同的变量而不是ImageView原来。

现在,第二个问题围绕在Android中执行此操作的正确方法。您应该 从不 直接实例化Activity实例。将框架中的引用传递给框架也是不错的做法。如果您的活动需要将某些信息传递给您的自定义ImageView,您应该在SecondClass.setCurrentAngle(angleCurrent)上创建一个方法,您可以使用该方法让活动向前传递值(即{{1}})< / p>

答案 1 :(得分:0)

如果您正在查看View以访问活动中的变量,那么它将不起作用。您需要将setMethod添加到自定义视图并设置活动的值。 Chthlu说得对,为什么你没有得到一个值:new创建一个不同于你在屏幕上的实例。你永远不应该在Activity类上调用new。你甚至不应该有一个Activity的构造函数,你应该在onCreate方法中设置所有内容。