0
  public class StartDraw extends Activity  {




@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   // setContentView(R.layout.main);
    MyView view1 =new MyView(this);
   // view1.setBackgroundResource(R.drawable.ic_launcher);
    setContentView(view1);



}


 public class MyView extends View implements OnTouchListener{
    RelativeLayout.LayoutParams LP;  
    ViewGroup dlayout; 
      ImageView[] ActionI = new ImageView[4];
      ImageView[] ReciverI = new ImageView[4];
    public MyView(Context c) {
        super(c);
     //  dlayout = new ViewGroup(c); // if i use this then error shown {Cannot instantiate the type ViewGroup}
         LP = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
       //  ViewGroup dlayout = (ViewGroup)findViewById(R.id.dlayout);
         dlayout.setLayoutParams(LP); // at this position gettting null pointer exception

}

   @Override
    protected void onDraw(Canvas canvas) {
           paint.setStyle(Paint.Style.STROKE);
           paint.setStrokeWidth(2);
           paint.setColor(Color.GREEN);
           canvas.drawColor(Color.BLUE);

           canvas.drawLine(offset_x, offset_y, currentX, currentY, paint);

    }
}
4

3 に答える 3

2

setContentView(R.layout.main); このコメントを削除して有効にします

   setContentView(R.layout.main); remove this comments and enable it

setContentView(R.layout.main); このコメントを削除して有効にします

于 2013-04-22T06:33:56.213 に答える
0

初期化をコメントアウトしましたdlayout。したがって、それはnullです。でNullPointerExceptionが発生しdlayout.setLayoutParamsます。

この原因/結果について理解できないことがある場合は、質問を拡張して明確にしてください。ただし、dlayout変数を初期化する方法がわからない場合は、それを独自の問題にします。

于 2013-03-15T07:14:26.577 に答える
0

初期化されていないオブジェクトのプロパティを設定しようとしています

dlayout.setLayoutParams(LP);

上記のコードのコメントを解除すると、エラーが修正されます。

//  ViewGroup dlayout = (ViewGroup)findViewById(R.id.dlayout);
于 2013-03-15T07:14:26.957 に答える