2011-11-14 26 views
2

在我的應用程序中,我有一個活動,在該類內我有一個內部類,該類有一些覆蓋方法,如onDraw()。 我想在該活動或不同類別中調用該方法onDraw()android如何調用其他類的覆蓋metod

可能嗎? 如果可能,給我一些方法來做到這一點。

這是我的代碼波紋管,

public class MainClass extends Activity { 
    @Override 
      public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        if (D) 
          Log.e(TAG, "+++ ON CREATE +++"); 

        rot1 = new Rotate1(this); 
        rot1.onDraw(canvas); } 

//Innerclass 
    public class Rotate1 extends ImageView { 
    public Rotate1(Context context) { 
          super(context); 

          random = new Random(); 
          paint = new Paint(); 
    } 
    @Override 
        protected void onDraw(Canvas canvas) { 

          super.onDraw(canvas); 

          height = this.getHeight(); 
          width = this.getWidth(); 

          // Log.d(tag, "Height of the canvas is = " + height); 
          // Log.d(tag, "Width of the canvas is = " + width); 
          // 

          final Bitmap bitmap = rollerDesk; 
          final Bitmap bitmap1 = mBitmap1; 

          ball2Rotate = new Canvas(mBitmap1); 
    } 
    } 

謝謝

+0

如果你擴展你的內部類與擴展視圖類,那麼它可能你可以重寫它的onDraw()方法,你以前試過什麼。郵政編碼。 – user370305

+0

我編輯了我的c \問題的代碼,只是通過它 – Narendra

回答

0

從一個內部類與像的onDraw方法名,它隱藏在外部類中的方法(或它的超類的一個),則可以使用下面的符號在內部類方法:

Outer.this.onDraw(args); 
0

你剛纔寫的onDraw()你希望它在擴展究竟在哪兒原來的onDraw是類的方式 - 小心因爲有時你必須在超級類中調用onDraw

+0

哎呀....特德是對的,我錯了... –

0

系統在特定事件內部調用overRidden方法。所以總是調用該事件而不是重寫的方法。 在你的情況下調用CustomView.invalidate()它將在內部調用onDraw()並刷新該視圖。