Androidスタジオ3.0カナリーのリリース以来、私はコトリンを学ぼうとしていましたが、私は理解できないことがあります。 ボタンとテキストビューで簡単なアクティビティを作成しようとしていました。 Android Studioがアクティビティをコンテキストとして認識できない理由を理解できません。 私のコードではトーストを作ろうとしますが、をと入力するとエラーが発生します。Androidスタジオ3.0サポートコトリン:コンテキストとしてのアクティビティ
エラーは次のとおりです。「指定された引数で次の関数を呼び出すことはできません。そして、赤
にコンテキストを強調ここでは、コードです:
class MainActivity : AppCompatActivity() {
fun AppCompatActivity.toast(message: CharSequence) = Toast.makeText(this, message, Toast.LENGTH_LONG).show()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById(R.id.mainButton) as Button
button.setOnClickListener{
[email protected]("proof")
Log.e("asd","proof")
}
}
}
事は、私は、コードを実行したとき、私は傷のない、ない実行時例外を取得していないということです。それはので、(あなたがAppCompatActivity
に拡張メソッドとしてtoast
を宣言しているので、(あなたがその名前の前にAppCompatActivity.
入れているので)エラーが発生したコンテキスト
AS/Kotlinプラグインのバグのように見えます。結局のところ、Android Studio 3.0のカナリービルドなので、今は気にしないでください。 –
Kotlin(まっすぐなJava)を使用していない間にもこの問題が発生しています –
btw、このような場合に役立つ美しいAnkoライブラリがあります。 "トースト"は箱の中からまっすぐに出ている - https://github.com/Kotlin/anko/ – Antek