0

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

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

请帮助我。在此先感谢。

4

2 回答 2

5

您已经在使用返回值,尽管您将它装箱为 aBoolean而不是仅boolean出于没有特殊原因使用 - 并且您明确地将它与 进行比较true,这是不寻常的。

实际上,我可能会使用条件运算符:

int scale = hasConnection() ? 90 : 60;
px = scale * (metrics.densityDpi / 160f);
于 2012-09-23T08:29:15.080 回答
4

您不需要将返回值保存在变量中,直接使用即可。if(booleanValue == true) 将是 true 或 false,所以只需删除 == true,它已经过时了

     if(hasConnection()) {
         px = 90 * (metrics.densityDpi/160f); 
     } else {
         px = 60 * (metrics.densityDpi/160f); 
     }
于 2012-09-23T08:29:25.063 回答