3

最新のAndroidAPIには、古いバージョンのAndroidでは利用できない便利なメソッドがいくつかあります。DatePickerたとえば、には、Android 2.2(レベル8)などの古いAPIでは使用できないという新しいメソッドがsetCalendarViewShown()あります。

ただし、最小APIレベルを8に設定し、ターゲットレベルを16に設定しました。したがって、可能な場合はこれらのメソッドを使用します(レベル11以降のデバイス)。

今、私はプログラムでいくつかのAPIレベルを区別しようとしました。可能な場合は、次のようなメソッドを呼び出します。

if (android.os.Build.VERSION.SDK_INT >= 11) {
    datePicker.setCalendarViewShown(false);
}

このアプローチは大丈夫ですか?Eclipseにはいくつかの警告がありますが、もちろんそれらは抑制できます。をチェックしているのでSDK_INT、このコードは問題なく問題ないはずですよね?

4

1 に答える 1

2

このアプローチは大丈夫ですか?

Build.VERSION_CODES.HONEYCOMB読みやすさの代わりに使用しますが、それ以外の11場合はそうです。

Eclipseにはいくつかの警告がありますが、もちろんそれらは抑制できます。

setCalendarViewShown()Eclipseは、APIレベル8には存在しないことを指摘します。バージョンガードブロック内でのみそのメソッドを呼び出していることを確認する信頼できる手段がないため、文句を言うだけです。アノテーションを使用すると、アノテーションが削除されますが、11よりも高い値を必要とするメソッドに他の何かを追加した場合でも、再度警告が表示されますTargetApi(11)

SDK_INTをチェックしているので、このコードは問題なく問題ないはずですよね?

はい。

android:calendarViewShownところで、この特定のケースでは、呼び出しを置き換えるために()を使用できるXML属性があります。Build古いバージョンではXML属性が自動的に無視されるため、チェックをスキップできます。

于 2012-10-08T21:13:53.793 に答える