2017-06-27 14 views
2

私はKotlinを初めて利用しています。 、onCreateView()メソッド内のAndroid Kotlinオーバーライドインターフェイスメソッド

fun onSuccess(result: T) 
fun onFailure(e: Exception) 

今私のフラグメントに私はこのインタフェースを実装しているとして内部にこれらのメソッドを使用したい:私は2つのメソッドの定義を含むインターフェースを持っている私たちが@Overrideで使用できるJavaで

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, 
           savedInstanceState: Bundle?): View? { 
    .................. 
    .................. 
    override fun onSuccess(result: String) {} 
    override fun onFailure(e: Exception) {} 
} 

しかし、ここでは、 'Modifier'のオーバーライド 'がローカル関数に適用されません'というエラーが表示されます。私は最後の2〜3日間コトリンで働いていて、私はそれを愛しています。しかし、少し時間がかかり、デバッグに時間がかかることもあります。

答えて

2

フラグメントにインターフェイスを実装し、オーバーライドするメソッドをonCreateViewメソッドの外に移動する必要があります。

クラスMyFragment:フラグメント、MyInterface

あなたはメソッド内のメソッドをオーバーライドすることはできません。別のオプションは、あなたが、私は外の方法を宣言すると、この作品

window.addMouseListener(object : MouseAdapter() { 
    override fun mouseClicked(e: MouseEvent) { 
     // ... 
    } 

    override fun mouseEntered(e: MouseEvent) { 
     // ... 
    } 
}) 

https://kotlinlang.org/docs/reference/object-declarations.html

+0

の下に示されたオブジェクト式を作成することができます。しかし、私の質問は、Javaのようなメソッドを宣言できる方法がある場合です。 –

+0

答えを更新しました.Javaの別のメソッド内のメソッドをオーバーライドすることはできませんが、オブジェクト式を作成することはできます。 – Dom

関連する問題