我在班级中有一个变量" MainActivity"使用名称modeNr,它受到保护,因此它应该可以从包中访问,但是每当我尝试从同一个包中的类更改它时,它会给出错误:"非静态字段' modeNr& #39;不能从静态上下文中引用"。我使用以下行来改变变量:
MainActivity.modeNr = 1;
关于问题是什么以及如何纠正它的任何想法?
答案 0 :(得分:0)
您正尝试从静态功能更改非静态成员。你需要使那个变量静态,或者需要创建该类的对象。 我们假设,
class Test {
int node = 0;
static int node1 =10;
}
class changeNode {
public static void changeNode(){
new Test().node = somevalue;
//or you need to make node static and change like this
Test.node1 = some value
}
}
答案 1 :(得分:0)
抱歉,我无法发表评论。
您的modeNr不是静态变量。您需要将其定义为:
{{1}}
因为您通过MainActivity.modeNr修改它,所以变量必须是一个静态变量。
答案 2 :(得分:0)
要消除该错误,您需要将变量定义为静态。
static String modeNr="soemthing"
要访问静态变量,可以通过静态成员或通过对象访问它。
答案 3 :(得分:0)
只需将modeNr
变量static
。
我认为日志Non-static field 'modeNr' cannot be referenced from a static context
正在解释一切。