Android 变量不更新值
这很奇怪,也许有人能帮上忙。我有两个类,当我尝试从主类访问变量时,值总是0.0Android 变量不更新值,android,class,variables,Android,Class,Variables,这很奇怪,也许有人能帮上忙。我有两个类,当我尝试从主类访问变量时,值总是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 cl
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
}
代码只是一个例子 如果您正在寻找一个视图来访问活动中的变量,它将不起作用。您需要向自定义视图中添加一个setMethod,并从活动中设置值。Chthlu正确地解释了为什么您没有得到一个值:
new
创建了一个不同于屏幕上的实例。您不应该在活动类上调用new
。您甚至不应该为活动设置构造函数,您应该在onCreate
方法中设置所有内容。这里有几个大问题。首先,行为发生的原因:
您不是从SecondClass
中的第一个MainActivity
实例访问变量,而是创建了一个新的MainActivity
的第二个实例,因此您可以访问与原始变量不同的变量
现在,第二个问题围绕着在Android中实现这一点的正确方法。您不应该直接实例化活动实例。与框架本身相比,传递对活动的引用也是不好的做法。如果您的活动需要将一些信息传递给自定义的ImageView
,您应该在ImageView
上创建一个方法,以便活动可以使用该方法向前传递值(即SecondClass.setCurrentAngle(angleCurrent)
)