以下を実行します (注: ターゲット > 3.0)
ActionBar actionBar = getActionBar();
バージョン < 3.0 (SDK 11) の Android では、NoSuchMethodError
.
これを回避するには、リフレクションやクラスの遅延読み込みなど、いくつかの方法があります。ただし、以下は、私がテストしたすべてのデバイス (2.3.6、3.0、3.1、4.0) で機能するようです。
boolean hasActionBar = android.os.Build.VERSION.SDK_INT >= 11;
if (hasActionBar) {
ActionBar actionBar = getActionBar();
} else {
// create custom actionbar
}
SDK_INT
パラメータがであることに注意してくださいstatic final
。これが、これが機能する理由のようです。
これは互換性に対処する有効な方法ですか?