2012-05-26 181 views
-4

我想要調用MyView.circle()方法當我點擊菜單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); 
    } 

    }   
} 
+0

再次正確地通過您的代碼!這是一個非常明顯的錯誤。這與你寫的所有內容沒有任何關係。 –

回答

1
public void static circle(c) { 

改變到

public void static circle(Canvas c) { 

我可能會建議花一些時間來編寫Android應用之前學習Java?

相關問題