我是Kotlin初学者,以下代码来自网页,看不懂代码中的参数this@MainActivity
layoutManager = LinearLayoutManager(this@MainActivity )
,你能告诉我吗?谢谢!
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import android.view.Menu
import android.view.MenuItem
import kotlinx.android.synthetic.main.activity_main.*
import mobi.porquenao.poc.kotlin.R
class MainActivity : BaseActivity() {
lateinit var listAdapter: MainAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
with (list) {
setHasFixedSize(true)
layoutManager = LinearLayoutManager(this@MainActivity)
listAdapter = MainAdapter()
adapter = listAdapter
}
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main, menu)
return super.onCreateOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
listAdapter.add()
list.smoothScrollToPosition(0)
return true
}
}
最佳答案
它是一个合格的 this
,用于从外部作用域访问MainActivity
的上下文。
class MainActivity {
fun onCreate() {
val list = listOf(1, 2, 3)
with (list) {
println(this) // >>> [1, 2, 3]
println(this@MainActivity) // >>> MainActivity@2a84aee7
}
}
}
您可以在 Kotlin 中阅读有关此方法的更多信息 documentation .
关于android - 这段代码this@MainActivity是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45502578/