Android, как вызвать метод переопределения другого класса - PullRequest
2 голосов
/ 14 ноября 2011

В моем приложении у меня есть одно действие, и в этом классе у меня есть внутренний класс, класс которого имеет некоторый метод переопределения, такой как 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 голосов
/ 14 ноября 2011

вы просто пишете onDraw () так, как хотите, в классе, который расширяется, где бы ни находился оригинальный onDraw, - будьте осторожны, так как иногда вам приходится вызывать onDraw в суперклассе

0 голосов
/ 14 ноября 2011

Метод overRidden, вызываемый системой внутри определенного события. поэтому всегда вызывайте это событие вместо переопределенного метода. в вашем случае вызовите CustomView.invalidate(), который внутренне вызовет onDraw () и обновит это представление.

0 голосов
/ 14 ноября 2011

Из внутреннего класса с именем метода, такого как onDraw, который скрывает метод во внешнем классе (или одном из его суперклассов), вы можете использовать следующую запись в методе внутреннего класса:

Outer.this.onDraw(args);
...