自從Android Studio 3.0 Canary發佈以來,我一直在努力學習Kotlin,並且有一些我無法理解的東西。 我試圖用Button和TextView做一個簡單的Activity。 我不明白爲什麼Android Studio無法將活動識別爲上下文。 在我的代碼中,我嘗試做一個Toast,但是當我把這個作爲參數的上下文時,AS給了我錯誤。Android Studio 3.0支持Kotlin:作爲上下文的活動
錯誤是:「以下函數都不能用提供的參數調用」。並突出紅色
語境下面的代碼:
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")
}
}
}
的事情是,當我運行代碼,我沒有得到任何瑕疵,沒有運行時異常。這只是Android Studio中不承認這是上下文
看起來像AS/Kotlin插件中的一個bug。畢竟這是一個安卓工作室3.0的金絲雀版本,所以現在不用擔心。 –
我也遇到這個問題,而不使用Kotlin(只是直接Java) –
順便說一句,有很多漂亮的Anko庫,可以幫助你很多這樣的情況 - 例如「吐司」是直接出盒 - https://github.com/Kotlin/anko/ – Antek