Android studio-Kotlin 如何为 XML 元素(Button、TextView)声明全局变量

Android studio-Kotlin how to declare global variables for XML elements (Button, TextView)

我想在我的 MainActivity.kt 中声明 3 个私有全局变量。 这就是我想要做的,但它不起作用:每次我在模拟器上打开应用程序时都会崩溃。

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    private var getTextBtn = Button(this)
    private var edtTxtName = EditText(this)
    private var textViewHello = TextView(this)
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
        
        getTextBtn = binding.getRecipeBtn
        edtTxtName = binding.edtTxtName
        textViewHello = binding.textViewHello
    }
}

我是 Kotlin/Android Studio 的新手,所以我所做的可能是完全错误的,但我不知道该怎么做

您也应该对这些变量使用 private lateinit var

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    private lateinit var getTextBtn: Button
    private lateinit var edtTxtName: EditText
    private lateinit var textViewHello: TextView
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
        
        getTextBtn = binding.getRecipeBtn
        edtTxtName = binding.edtTxtName
        textViewHello = binding.textViewHello
    }
}

不过,我反对它 - 您仍然可以从 binding 访问它们。维护的引用越少越好。