我在做android项目期间遇到了一个问题...我在" A.java"中声明了六个变量。如下。
public static int a = -1;
public static int b = -1;
public static int c = -1;
public static int d = -1;
public static int e = -1;
public static int f = -1;
我设置如果readMessage等于s1 ...,那么a = 0.继续。 readMessage,s1,s2,s3,s4,s5和s6是字符串。
if(readMessage.equals(s1)){
a=1;
}
else if(readMessage.equals(s2)){
b=1;
}
else if(readMessage.equals(s3) ){
c=1;
}
else if(readMessage.equals(s4)){
d=1;
}
else if(readMessage.equals(s5)){
e=1;
}
else if(readMessage.equals(s6)){
f=1;
}
现在在MainActivity.java中,我编写如下代码。但它不起作用!图像不会改变。
ImgPhoto = (ImageView)findViewById(R.id.logoImageView);
if((A.a) == 1){ImgPhoto.setImageResource(imgId[0]);}
else if((A.b) == 1){ImgPhoto.setImageResource(imgId[1]);}
else if((A.c) == 1){ImgPhoto.setImageResource(imgId[2]);}
else if((A.d) == 1){ImgPhoto.setImageResource(imgId[3]);}
else if((A.e) == 1){ImgPhoto.setImageResource(imgId[4]);}
else if((A.f) == 1){ImgPhoto.setImageResource(imgId[5]);}
任何人都可以帮助我吗?我在互联网上搜索但我没有找到任何解决方案.... 我将感谢您的帮助!
答案 0 :(得分:0)
答案 1 :(得分:0)
来自oracle
在声明字段时,并不总是需要分配值。声明但未初始化的字段将由编译器设置为合理的默认值。一般来说,此默认值将为零或null,具体取决于数据类型。但是,依赖于这样的默认值通常被认为是糟糕的编程风格。
因此static
中的所有A.java
变量将zero
设置为null
或jvm
并且第一个if语句将永远为真
最佳解决方案是将它们设置为未使用的值,例如-1
public static int a=-1;
public static int b=-1;
public static int c=-1;
public static int d=-1;
public static int e=-1;
public static int f=-1;