2011-11-14 2 views
2

私のアプリケーションでは、私は1つのアクティビティを持って、そのクラス内クラスはいくつかのオーバーライドメソッドを持っているonDraw()のような内部クラスがあります。 私はそのアクティビティや異なるクラスでonDraw()メソッドと呼びたいと思います。androidどのように他のクラスのオーバーライドメートを呼び出す方法

可能ですか?可能であれば、それを行うための方法を私に与えてください。ここで

あなたは、

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); 
    } 
    } 

は、外部クラス(またはそのスーパークラスの1)に記載の方法を隠しonDrawのようなメソッド名と内部クラスからあなたに

+0

あなたの内部クラスをextend Viewクラスで拡張した場合、そのonDraw()メソッドをオーバーライドすることができます。郵便番号。 – user370305

+0

コードで私の質問を編集しました。ちょうどそれを通ります – Narendra

答えて

0

をありがとう、私のコード怒鳴るです内部クラスメソッドでは、次の表記法を使用することができます。

Outer.this.onDraw(args); 
0

あなただけのonDrawを(書く)あなたは、元のonDrawである場合、これまで拡張するクラスでそれを望むように - 注意してくださいをスーパークラスでonDrawを呼び出さなければならない場合があります。

+0

おっと....テッドは正しいです、私は間違っています... –

0

特定のイベントで内部的にシステムからoverRiddenメソッドが呼び出されていますか?常にオーバーライドされたメソッドの代わりにそのイベントを呼び出します。あなたのケースの は、内部でonDraw()を呼び出してそのビューを更新するCustomView.invalidate()を呼び出します。

関連する問題