我只是想知道如何使用从方法返回的布尔值。这是返回值的方法:
public boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) MCQ.this.getBaseContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnectedOrConnecting()) {
return true;
}
NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnectedOrConnecting()) {
return true;
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnectedOrConnecting()) {
return true;
}
return false;
}
这是我想要使用此值的方法:
public void setScrollViewLayoutMarginBottom()
{
Resources resources = this.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
Boolean b = hasConnection();
if(b == true)
{
px = 90 * (metrics.densityDpi/160f);
}
else
px = 60 * (metrics.densityDpi/160f);
layoutParams.bottomMargin = (int) px;
layoutParams.setMargins(0, 0, 0, (int) px);
sv.setLayoutParams(layoutParams);
}
请帮帮我。谢谢。
答案 0 :(得分:5)
您已经在使用返回值,虽然您将其装入Boolean
而不是仅仅使用boolean
而没有特殊原因 - 并且您明确将其与{{1这是不寻常的。
我可能会使用条件运算符,实际上:
true
答案 1 :(得分:4)
您不需要将返回值保存在变量中,只需直接使用即可。 if(booleanValue == true)将为true或false,所以只需删除== true,它就过时了
if(hasConnection()) {
px = 90 * (metrics.densityDpi/160f);
} else {
px = 60 * (metrics.densityDpi/160f);
}