如何在一个类中调用另一个类的方法

时间:2012-05-26 07:50:05

标签: java android nullpointerexception

我想点击菜单 Circle 时调用MyView.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);
    }

    }           
}

1 个答案:

答案 0 :(得分:1)

public void static circle(c) {

需要更改为

public void static circle(Canvas c) {

我建议在编写Android应用程序之前花一些时间学习Java吗?