1

Sam の Teach Yourself Android Application Development を使用して Android Dev を 24 時間で学習していますが、以下のコードに出くわしました。私は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) {
       }
});
4

2 に答える 2

2

これは匿名内部クラスと呼ばれ、特にリスナーにとって Java の最も便利な機能の 1 つです。(リンクされた記事には、より多くのコード例があります。)

AnimationListener基本的に、これはインターフェースを実装する新しいクラスを作成するための簡略構文です。このクラスには名前がないため、「匿名」クラスと呼ばれています。メソッド呼び出し内で、インターフェイスの 3 つのメソッドすべてをインラインで定義できます。また、匿名の内部クラス内では、含まれているクラスとメソッドからフィールド、メソッド、およびローカル変数にアクセスできます。

また、 Android と Java - use of Runnableに関する議論を読みたいと思うかもしれません。

于 2013-10-29T02:07:35.243 に答える