2

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

代码只是说明。

4

2 回答 2

1

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

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

现在,第二个问题围绕在 Android 中执行此操作的正确方法。你不应该直接实例化 Activity 实例。传递对 Activity 的引用比框架已经做的更多也不是好的做法。如果您的 Activity 需要将一些信息传递给您的 custom ImageView,您应该在您的上创建一个方法ImageView,您可以使用该方法让 Activity 向前传递值(即SecondClass.setCurrentAngle(angleCurrent)

于 2012-11-14T17:24:24.150 回答
0

如果您正在寻找一个视图来访问活动中的变量,那么它将无法正常工作。您需要将 setMethod 添加到自定义视图并设置活动的值。Chthlu 关于为什么你没有获得价值是正确的:new创建一个与你在屏幕上的不同的实例。你永远不应该调用newActivity 类。您甚至不应该拥有 Activity 的构造函数,您应该在onCreate方法中设置所有内容。

于 2012-11-14T17:23:42.313 回答