如何使用方法返回的布尔值

时间:2012-09-23 08:25:19

标签: java android

我只是想知道如何使用从方法返回的布尔值。这是返回值的方法:

 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);
     }

请帮帮我。谢谢。

2 个答案:

答案 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); 
     }