int sch = 1;
if (sch == 1){
Log.d("check", "1");
}
if (sch == 2){
Log.d("check", "2");
}
else {
Log.d("check", "error!");
}
这是一个非常简单的陈述。
我在我的android java代码中使用了完全相同的语句,
它在logcat中显示为check: 1
。
当我得到我正在使用的真实代码时,
int sch = 1;
if (sch == 1){
activity.getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.white));
if (android.os.Build.VERSION.SDK_INT >= 21) {
activity.getWindow().setNavigationBarColor(getResources().getColor(R.color.white));
activity.getWindow().setStatusBarColor(getResources().getColor(R.color.red));}
Log.d("check", "1");
}
if (sch == 2){
activity.getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.white));
if (android.os.Build.VERSION.SDK_INT >= 21) {
activity.getWindow().setNavigationBarColor(getResources().getColor(R.color.white));
activity.getWindow().setStatusBarColor(getResources().getColor(R.color.green));}
Log.d("check", "2");
}
else {
activity.getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.white));
if (android.os.Build.VERSION.SDK_INT >= 21) {
activity.getWindow().setNavigationBarColor(getResources().getColor(R.color.white));
activity.getWindow().setStatusBarColor(getResources().getColor(R.color.white));}
Log.d("check", "error");
}
}
当我运行此代码时,它应该在logcat上显示check: 1
并在状态栏上显示为红色。
但它显示如下:
check: 1
check: error
状态栏上显示白色。
这是确切的代码,我没有发现任何错误。
可能是什么问题?
答案 0 :(得分:6)
替换:
if (sch == 2)
使用:
else if (sch == 2)
就目前而言,对于sch
1
,它将与您的第一个sch==1
if
和第二个else
条件相匹配if
else if
1}}。有关apt-get install gdc
如何运作的详细信息,请参阅this official Java tutorial page。
答案 1 :(得分:2)
你需要一个像下面这样的if结构,否则,如果是sch == 1
,它将通过两个测试,第一个和最后一个像你的问题一样。
if (sch == 1){
Log.d("check", "1");
} else if (sch == 2) {
Log.d("check", "2");
} else {
Log.d("check", "error !");
}
使用多个条件和原始整数时的最佳解决方案是switch
语句,如下所示default
等同于else
switch(sch){
case 1 : Log.d("check", "1") : break;
case 2 : Log.d("check", "2") : break;
default : Log.d("check", "error !") : break;
}
答案 2 :(得分:1)
试试这个:
int sch = 1;
if (sch == 1){
activity.getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.white));
if (android.os.Build.VERSION.SDK_INT >= 21) {
activity.getWindow().setNavigationBarColor(getResources().getColor(R.color.white));
activity.getWindow().setStatusBarColor(getResources().getColor(R.color.red));}
Log.d("check", "1");
}
else if (sch == 2){
activity.getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.white));
if (android.os.Build.VERSION.SDK_INT >= 21) {
activity.getWindow().setNavigationBarColor(getResources().getColor(R.color.white));
activity.getWindow().setStatusBarColor(getResources().getColor(R.color.green));}
Log.d("check", "2");
}
else {
activity.getWindow().getDecorView().setBackgroundColor(getResources().getColor(R.color.white));
if (android.os.Build.VERSION.SDK_INT >= 21) {
activity.getWindow().setNavigationBarColor(getResources().getColor(R.color.white));
activity.getWindow().setStatusBarColor(getResources().getColor(R.color.white));}
Log.d("check", "error");
}
}