-2

私は、Javaでの条件付きコンパイルに反対するすべての議論を知っています。この特定のケースでは、コードがEclipseで実行されるかどうかをテストできるようにするために、小さなIFのみが必要です。これは、特別な処理を使用するためにビューをオーバーライドすると、Eclipseが変更されたビューをコンパイルしてIDEに表示できない場合があるためです(この動作が発生する場合が多くありますが、特定のケースはコードが参照する場合ですEclipseが明らかに実行できないJNIライブラリに)。

今使っています

if (!Build.DEVICE.startsWith("generic"))
 // do something

それは機能しますが、たとえば、onDraw()で毎回文字列比較を行うのはあまり好きではありません。私がEclipseを使用しているかどうかを確認し、いくつかのアクションを回避するには、より簡単な方法、より安価な条件が必要です。

編集:明確にするために、C#のComponent.DesignModeプロパティに相当するJava / Android/Eclipseの可能性を探しています。

4

1 に答える 1

0

私がこれまでに思いついた最高のものは次のとおりです。

import android.os.Build;

public class IDE {
  private static IDE instance = null;
  protected boolean designMode = false;

  private IDE() {
    designMode = Build.DEVICE.startsWith("generic");
  }

  public static IDE getInstance() {
    if (instance == null)
      instance = new IDE();
    return instance;
  }

  public static boolean DesignMode() {
    return getInstance().designMode;
  }
}

これは、チェックをカプセル化するシングルトンクラスであり、次のようにクエリできます。

if (!IDE.DesignMode())
  // do something
于 2013-01-23T14:08:22.930 に答える