这很奇怪,也许有人可以帮助您。我有两个类,当我尝试从主类访问变量时,值始终为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
}


代码只是说明。

最佳答案

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

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

现在,第二个问题围绕着在Android中执行此操作的正确方法。您永远不要直接实例化Activity实例。将框架的内容传递给活动的引用也不是一种好习惯。如果您的活动需要将一些信息传递给自定义的ImageView,则应在ImageView上创建一个方法,该方法可用于活动将值向前传递(即SecondClass.setCurrentAngle(angleCurrent)

10-08 17:42