0

LinearLayout を拡張するカスタム ビュー クラスのコンストラクターのスーパー (コンテキスト)行にNullPointerException があります。Android 4.1.2 仮想デバイスでのテストでは問題は発生しません。

public class customView extends LinearLayout {
  private NavigationBar navigationBar;
  private Activity activity;
  public customView(Context context) {
    super(context);
    activity = (Activity) context;
    navigationBar = new NavigationBar(context);
    LayoutParams Params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    setLayoutParams(Params);
    setOrientation(LinearLayout.VERTICAL);
    this.addView(navigationBar);
}
4

2 に答える 2

1

これを試して:

public class MyLinearLayout extends LinearLayout
{

    public MyLinearLayout(Context context)
    {
        super(context);
        Init(context);
    }

    public MyLinearLayout(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        Init(context);
    }

    private void Init(Context context)
    {
        activity = (Activity) context;

        navigationBar = new NavigationBar(context);
        LayoutParams Params = new LayoutParams(LayoutParams.FILL_PARENT,         LayoutParams.FILL_PARENT);
        setLayoutParams(Params);
        setOrientation(LinearLayout.VERTICAL);

        this.addView(navigationBar);
    }
}
于 2013-07-04T11:13:54.007 に答える
0

次のように変更する必要があります。

public class customView extends LinearLayout {
      private NavigationBar navigationBar;

      public customView(Context context)
   {
         super(context);


     navigationBar = new NavigationBar(context);
     LayoutParams Params = new LayoutParams(LayoutParams.FILL_PARENT,   LayoutParams.FILL_PARENT);
     setLayoutParams(Params);
     setOrientation(LinearLayout.VERTICAL);

     this.addView(navigationBar);
}
于 2013-07-04T10:37:46.067 に答える