Androidプレビューを保持するためにSurfaceViewを使用しようとしています。ドキュメンテーションでは、サーフェスホルダーのsurfaceCreatedコールバックでstartPreviewを呼び出す必要があることがわかります。インターフェイスを匿名でKotlinに実装すると「コンストラクタがありません」というエラーが発生する
SurfaceHolder.Callback has no constructors.
このようなものがない場合、これは動作しませんなぜ私は混乱している:私はしかし、私はエラーを取得するので、
this.surface!!.holder!!.addCallback(SurfaceHolder.Callback() {
fun surfaceChanged(holder: SurfaceHolder, format: Int,
width: Int, height: Int) {
}
fun surfaceCreated(holder: SurfaceHolder) {
}
fun surfaceDestroyed(holder: SurfaceHolder) {
}
})
のようにコールバックを設定しようとしている
Thread(Runnable() {
fun run() {
...
}
})
あなたの第二の場合は、同様に間違っている、あなたは実際に 'の実行を()'オーバーライドされていませんメソッドを呼び出すことはできませんが、呼び出されないネストされた 'run()'関数を含むラムダを渡します。どちらの例も無効です。 –
Runnableの実行例についても、インタフェースを指定する必要はなく、SAM変換を使用してラムダ 'Thread {...} 'を渡すことができます –