如何在我的Kotlin类中创建一个匿名接口实现并使用它?

Moh*_*ini 1 java android interface kotlin android-studio

我怎么能在Kotlin中有类似这样的java代码?即便是IDE也不能完美地将其转换为Kotlin!

/** Defines callbacks for service binding, passed to bindService() */
private ServiceConnection mConnection = new ServiceConnection() {

    @Override
    public void onServiceConnected(ComponentName className,
            IBinder service) {
        // We've bound to LocalService, cast the IBinder and get LocalService instance
        LocalBinder binder = (LocalBinder) service;
        mService = binder.getService();
        mBound = true;
    }

    @Override
    public void onServiceDisconnected(ComponentName arg0) {
        mBound = false;
    }
};
Run Code Online (Sandbox Code Playgroud)

我试过使用inner class但后来我无法像这样使用它:

@Override
protected void onStart() {
    super.onStart();
    // Bind to LocalService
    Intent intent = new Intent(this, LocalService.class);
    bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
Run Code Online (Sandbox Code Playgroud)

nha*_*man 11

你在这里创建一个匿名类.在Kotlin中,这些是对象表达式:

val connection = object: ServiceConnection {
    override fun onServiceConnected(className: ComponentName, service: IBinder) { 
        //Something to do
    }

    override fun onServiceDisconnected(arg0: ComponentName) {
        //Something to do
    }
}
Run Code Online (Sandbox Code Playgroud)