实现AnimationListener抽象方法

时间:2013-10-29 01:34:24

标签: java android animation

我正在使用Sam在24小时内自学Android应用程序开发学习Android Dev,我在下面看到了一个代码。我也是相对较新的Java,但我非常了解基础知识,但我不明白onAnimationEnd()如何作为参数在里面实现???有人可以解释发生了什么,这对于setAnimationListener方法来说这是一个有效的参数(语法)?

fade2.setAnimationListener(new AnimationListener() {
    public void onAnimationEnd(Animation animation) {
    // The animation has ended, transition to the Main Menu screen
        startActivity(new Intent(QuizSplashActivity.this, QuizMenuActivity.class));
        QuizSplashActivity.this.finish();
    }

    public void onAnimationRepeat(Animation animation) {
    }

    public void onAnimationStart(Animation animation) {
       }
});

2 个答案:

答案 0 :(得分:2)

这称为anonymous inner class,是Java最有用的功能之一,尤其适用于听众。 (链接的文章有更多的代码示例。)

基本上,它是用于创建实现AnimationListener接口的新类的简写语法。该类没有名称,这就是为什么它被称为“匿名”类。您可以在方法调用中定义内联接口的所有三种方法。在匿名内部类中,您可以从包含的类和方法访问字段,方法和局部变量。

您可能还想阅读有关Android and Java - use of Runnable的讨论。

答案 1 :(得分:0)

这不是参数。它看起来像是来自新手的角度,但它是一个界面,必须实现的方法是onAnimationEnd。如果你看onClickListener,原则是一样的。您需要立即实施onClick方法。被调用的方法也称为匿名方法。这是一种没有名字的方法。您也将在Java的许多地方看到这些方法。