android如何调用另一个类的重写方法

时间:2011-11-14 07:15:12

标签: android methods override

在我的应用程序中,我有一个活动,在该类中,我有一个内部类,该类有一些覆盖方法,如 onDraw() 。 我想在该活动或不同的类中调用 onDraw() 方法。

有可能吗? 如果可能的话,请给我一些方法来做到这一点。

以下是我的代码,

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

谢谢

3 个答案:

答案 0 :(得分:0)

从具有方法名称的内部类(如onDraw)隐藏外部类(或其中一个超类)中的方法,可以在内部类方法中使用以下表示法:

Outer.this.onDraw(args);

答案 1 :(得分:0)

你只需要在类中扩展onDraw(),就像扩展到原始onDraw的地方一样 - 小心,因为有时你必须在超类中调用onDraw

答案 2 :(得分:0)

系统在内部对特定事件调用overRidden方法。所以总是调用该事件而不是重写方法。 在你的情况下调用CustomView.invalidate(),它将在内部调用onDraw()并刷新该视图。