2012-05-26 3 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) { 

Может я рекомендую потратить некоторое время на изучение Java, прежде чем писать Android приложений?

Смежные вопросы