我是 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
}
}
Run Code Online (Sandbox Code Playgroud)
它是一个限定的 this,用于MainActivity从外部范围访问 的上下文。
class MainActivity {
fun onCreate() {
val list = listOf(1, 2, 3)
with (list) {
println(this) // >>> [1, 2, 3]
println(this@MainActivity) // >>> MainActivity@2a84aee7
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在 Kotlin文档中阅读有关此方法的更多信息。
| 归档时间: |
|
| 查看次数: |
2790 次 |
| 最近记录: |