-4

メニューCircleMyView.circle()をクリックしたときにメソッドを呼び出したいのですが、メニューをクリックすると がスローされます。これは、オブジェクトが期待どおりに初期化されていないことを意味します。NullPointerException

これが私のコードです。どこが間違っていますか?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new MyView(this));
}


@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
    menu.add(0,1,1,"Circle");
    menu.add(0,1,2,"Rect");
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch(item.getItemId())
        {
        case 1:
            MyView.circle();
            break;
        }
        return super.onOptionsItemSelected(item);
    }
    public static class MyView extends View {
    private Context context;
    static Canvas can=null;
    public MyView(Context c) {
        super(c);
        context=c;
    }
    @Override
    protected void onDraw(Canvas canvas) {
        mPaint=new Paint();
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(Color.BLUE);
        mPaint.setAntiAlias(true);
        //circle(canvas);
    }
    public static void circle() {
        // TODO Auto-generated method stub
       can.drawCircle(50, 50, 50, mPaint);
    }

    }           
}
4

1 に答える 1

1
public void static circle(c) {

に変更する必要があります

public void static circle(Canvas c) {

Androidアプリを作成する前に、Javaの学習に時間をかけることをお勧めしますか?

于 2012-05-26T08:01:36.423 に答える