gpt4 book ai didi

android - 为什么在此代码中使用this @ MainActivity?

转载 作者:行者123 更新时间:2023-12-02 13:16:41 29 4
gpt4 key购买 nike

我在 MainActivity 类中看到了这样的代码:

class MainActivity : AppCompatActivity() {
private val languages = arrayOf("One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten")
private var index = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textSwitcher.setFactory {

val textView = TextView(this@MainActivity) //the line I was
//talking about.

textView.gravity = Gravity.CENTER_HORIZONTAL
textView.textSize = 32f
textView.setTextColor(Color.BLACK)
}
textSwitcher.setText(languages[index])
}
}
但是我没明白。 “ ”关键字已经不代表 MainActivity 吗?如果是这样,为什么需要标签?
我已经编写了该代码以了解“this”关键字。
class class1(c:class2){
init{
c.output()
}
}
class class2{
init{
class1(this) // this" keyword represent the class2
}
fun output(){
println("Hello.")
}
}
fun main(){
val x = class2()
}

最佳答案

如果该行代码在apply lambda内部或某个对象内部,或在其他情况下; lambda可以使用相同的关键字this对其自身进行引用。因此,要指定以范围名称作为标签的适当引用@。
因此,基本上,label用于指定其他lambda或内部类等内部类的范围,

关于android - 为什么在此代码中使用this @ MainActivity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62982451/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com