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

use*_*334 0 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;
          }
Run Code Online (Sandbox Code Playgroud)

这是我想要使用此值的方法:

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);
     }
Run Code Online (Sandbox Code Playgroud)

请帮帮我.谢谢.

Jon*_*eet 5

你已经在使用返回值了,虽然你把它装入一个Boolean而不仅仅是boolean因为没有特殊原因 - 并且你明确地将它与之比较true,这是不寻常的.

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

int scale = hasConnection() ? 90 : 60;
px = scale * (metrics.densityDpi / 160f);
Run Code Online (Sandbox Code Playgroud)