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

あなたはすでに戻り値を使用していますが、特に理由もなくBoolean使用するのではなく、それを にボックス化しています。booleantrue

実際には、代わりに条件演算子を使用する可能性があります。

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 に答える