Kotlin
Beginner
1 min read
Android with Kotlin: Activities and ViewBinding
Example
// build.gradle.kts (app module)
// android { buildFeatures { viewBinding = true } }
// MainActivity.kt
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.launch
import com.example.app.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.btnGreet.setOnClickListener {
val name = binding.etName.text.toString().trim()
if (name.isEmpty()) {
Toast.makeText(this, "Enter a name", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
binding.tvResult.text = "Hello, $name!"
}
// Coroutine tied to Activity lifecycle
lifecycleScope.launch {
val data = fetchDataSuspend()
binding.tvResult.text = data
}
}
private suspend fun fetchDataSuspend(): String {
kotlinx.coroutines.delay(1000)
return "Data loaded!"
}
}