2016-06-14 4 views
10

В Java, экземпляр объекта интерфейс так же легко, как new Interface() ... и переопределить все необходимые функции, как показано ниже, на AnimationListenerКак создать экземпляр анонимного класса, который реализует интерфейс в Котлин

private void doingSomething(Context context) { 
    Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_in); 
    animation.setAnimationListener(new Animation.AnimationListener() { 
     // All the other override functions 
    }); 
} 

Однако, в Котлине, когда мы печатаем

private fun doingSomething(context: Context) { 
    val animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_in) 
    animation.setAnimationListener(Animation.AnimationListener(){ 
     // All the other override functions 
    }) 
} 

Это ошибка жалоб неразрешенная Ссылки АнимацияListener.

+1

Возможный дубликат [Как создать экземпляр анонимного интерфейса в Котлин?] (Http://stackoverflow.com/questions/37672023/how-to-create-an-instance-of-anonymous-interface -in-kotlin) – miensol

ответ

19

Как объяснен в the documentation:

animation.setAnimationListener(object : Animation.AnimationListener { 
    // All the other override functions 
}) 
+0

Спасибо! Отлично. Когда я выполнял поиск в https://kotlinlang.org/docs/reference/interfaces.html, он даже ничего не трогал. Документация довольно неясна. Поиск в Интернете также не может найти его. Единственное место, где можно найти это, - это вручную написать код Java и преобразовать его ... Надеюсь, мой вопрос с stackoverflow поможет другим найти это быстро, чтобы найти его. Благодаря! – Elye

+0

Я предложил улучшить документацию в котлинском провисании. Я согласен с тем, что информацию не так легко найти в документе. –

+0

Звучит здорово! – Elye

4

По-видимому, последний путь (используя Котлин 1.0.5) делать это теперь без скобок, поскольку нет пустого конструктора для интерфейса.

animation.setAnimationListener(object : Animation.AnimationListener { 
    // All the other override functions 
}) 
Смежные вопросы