1

非推奨のメソッドをサポートするために、try/catch を取り入れようとしています。

minSdkVersion が低すぎて、試している (新しい) メソッドをサポートできない場合、(まだ) サポートされていないため、Eclipse はエラーを表示します。Eclipse にこの行を無視させるにはどうすればよいですか?

コードは次のとおりです。

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();

    try { 
        display.getSize(size); 
        width = size.x; 
        height = size.y; 
    } catch (NoSuchMethodError e) {
        width = display.getWidth();
        height = display.getHeight(); 
    } 

minsdkversion が 14 より前の場合、Eclipse は Display.getSize(size) を好みません。

あるいは、これを行うためのより良い方法はありますか?

ありがとう

4

3 に答える 3

1

私はこれが関連していると信じています: Android SDK のバージョンを取得するにはどうすればよいですか?

Build.VERSION.SDK_INT は、必要なものです。try/catch を置き換える単純な if/else。

于 2012-09-27T20:38:35.670 に答える
1

これは、リフレクションが役立つ場所ですgetSize。クラスからメソッドを取得してみてください。取得に成功した場合はそれを使用し、それ以外の場合は古いスタイルにフォールバックします。

于 2012-09-27T20:30:25.907 に答える
0

ビルド ターゲットを Jelly Bean に上げると、 を使用@SuppressLint("NewApi")してエラーを無視できます。新しい Android ツールでエラーを無視する別の方法はないと思います。

編集: 実際には、ビルド ターゲットを Jelly Bean まで上げる必要はありません。現在、SuppressLint は 4.0.3 で動作しています。SDK に付属の Android アノテーション JAR だけが必要です。

于 2012-09-27T20:30:06.820 に答える