2

私は、Android 2.3.3 で実行する必要がある Android アプリを作成しています (フラグメント化が必要です!)。そのバージョン以降LinearLayout、追加のコンストラクターが導入されたので、次のようなことができるようにしたいと考えています。

public class ActionMenuTextItemView extends LinearLayout
{
    public ActionMenuTextItemView(Context context, AttributeSet attrs, int defStyle)
    {
        if (android.os.Build.VERSION.SDK_INT >= 11)
            super(context, attrs, defStyle);
        else
            super(context, attrs);
    }

最初の行でなければならないため、機能しませんsuper。これを回避する方法はありますか (APK の 2 つのバージョンをビルドする以外に)? 明らかに、私はおそらく常に 2 つのパラメーターのバージョンを使用することになりますが、より良い方法があるかどうかを知りたいです。

4

1 に答える 1

0

以下のように 2 つのコンストラクターを持つことができます。1 つはジンジャーブレッドで、もう 1 つはハニカム以上で使用します。

public class ActionMenuTextItemView extends LinearLayout
{
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public ActionMenuTextItemView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
    }

    public ActionMenuTextItemView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }
}
于 2013-10-08T09:33:07.317 に答える