【问题标题】:Variable not updating value变量不更新值
【发布时间】:2012-11-14 17:17:25
【问题描述】:

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

代码只是说明。

【问题讨论】:

    标签: android class variables


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-05
        • 2018-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-10
        • 2019-08-06
        • 2023-02-09
        相关资源
        最近更新 更多