"lateinit" or "by lazy" when defining global android.widget var/val
当定义一个全局
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class MainActivity: AppCompatActivity() { val helloWorldTextView by lazy { findViewById(R.id.helloWorldTextView) as TextView } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) updateTextView(helloWorldTextView) } fun updateTextView(tv: TextView?) { tv?.setText("Hello?") } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class MainActivity: AppCompatActivity() { lateinit var helloWorldTextView: TextView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) helloWorldTextView = findViewById(R.id.helloWorldTextView) as TextView updateTextView(helloWorldTextView) } fun updateTextView(tv: TextView?) { tv?.setText("Hello?") } } |
在定义全局
所以使用
第三种可能性是 Android 综合属性。那你就完全不用担心变量了。
1 2 3 | import kotlinx.android.synthetic.main.activity_main.* helloWorldTextView.text ="Hello?" |