【问题标题】:How to call a method of another class in one class如何在一个类中调用另一个类的方法
【发布时间】:2012-05-26 07:50:04
【问题描述】:

当我点击菜单 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);
    }

    }           
}

【问题讨论】:

  • 再次正确检查您的代码!这是一个非常明显的错误。它与你写的一切无关。

标签: java android nullpointerexception


【解决方案1】:
public void static circle(c) {

需要改成

public void static circle(Canvas c) {

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2012-09-06
    相关资源
    最近更新 更多